题解:P15594 [ICPC 2020 Jakarta R] Exchange Bottleneck
思路
容易看出,如果
然后来考虑在最后一个
若
注意
代码
#include<cstdio>
int main()
{
int n;
scanf("%d",&n);
int now=0,maxn=0,a;
scanf("%d",&a);//E_1不用处理(此时now=0,不用清空)
for(int i=2;i<n;i++)
{
scanf("%d",&a);
if(a==0){now++;maxn=1;}//记录最后一段0的长度,并标记为有1出现过
else now=0;//最后一段0不存在了,清空
}
maxn=(maxn>now?maxn:now);//若此时now=0但之前有0出现,答案不应为now+1,而应为maxn+1即2
printf("%d",maxn+1);
return 0;
}