题目
原题链接: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<