CodeFoeces-465B

题目

原题链接:B. Inbox (100500)

题意

有n封邮件,可以进行三种操作,1:打开任意邮件,2:返回列表,3:上一封或下一封。问看完所有邮件最少需要几步。
参考了其他作者的思路。连续的未读下一封即可,非连续的则返回列表再打开即可。

代码

#include
using namespace std;
int main() {
    int n,s[1010],it=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
        if(!it && s[i]==1) it=i;
    }
    int ans=0;
    for(int i=it;i<=n;i++){
        if(s[i]==1){
            printf("%d %d\n",it,i);
            ans+=(i-it>1)?2:1;
            it=i;
        }
    }
    cout<

你可能感兴趣的:(CodeFoeces-465B)