题解 CF36A 【Extra-terrestrial Intelligence】

这题好坑啊……

其实模拟并不难,但是输入和输出有坑:

输入要加freopen(“input.txt”,”r”,stdin) 输出要加freopen(“output.txt”,”w”,stdout)

输入要加freopen(“input.txt”,”r”,stdin) 输出要加freopen(“output.txt”,”w”,stdout)

输入要加freopen(“input.txt”,”r”,stdin) 输出要加freopen(“output.txt”,”w”,stdout)

重要的事情说三遍

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<cstdio>
int n,a[105],l1,l2;
int main(void){
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf ("%d",&n);
for (int i=1;i<=n;i++){
scanf("%1d",&a[i]);
if(a[i]&&!l1)l1=i;//记录第一个1
else if (a[i]&&!l2)l2=i;//记录第2个1
}
for (int i=l2+1;i<=n;i++)if (a[i]&&i-l2==l2-l1)l1=l2,l2=i;//间隔相同,更新
else if(a[i])return !printf ("NO");//不相同直接退出
printf ("YES");
}