时间限制: 1000 ms 空间限制: 262144 KB
题目描述
输入
输出
样例输入
样例输出
数据范围限制
提示
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #include<bits/stdc++.h> using namespace std; int n,a[300001],s[300001],b[300001],ans=0,p=1,t; void doit(int q) { for(int i=q;i<=n;i++) { b[i]-=s[i-1]+s[i]; if(b[i]==1) { if(i==n) { p=0; break; } s[i+1]=1; } if(b[i]>=2||b[i]<0) { p=0; break; } } } int main() { freopen("cti.in","r",stdin); freopen("cti.out","w",stdout); scanf("%d",&t); while(t!=0) { t--; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } s[1]=1; doit(1); if(p!=0) ans++; for(int i=1;i<=n;i++) { s[i]=0; b[i]=a[i]; } p=1; doit(1); if(p!=0) ans++; printf("%d\n",ans); for(int i=1;i<=n;i++) { s[i]=0; b[i]=a[i]; } p=1; ans=0; } return 0; }
|
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 暗影小站! 注: 本博客暂不开设评论区,请使用邮件119548583@qq.com联系