该题目我使用了while(cin),但是测评的时候没有对while的卡循环进行wrong警报。
如果需要跳出while(cin)循环,应该加入if(cin.get()=='\n') break;语句。
该题目一开始使用了二维数组,变量加加减减的十分麻烦,后来发现可以用n*n的一维数组。
#include<iostream>
using namespace std;
int main(){
int n,x,p=0,i;
cin>>n;
int map[n*n+5];
bool key=0;
while(cin>>x){
for(i=p;i<p+x;i++)
map[i]=key;
p=i;
key=!key;
if(cin.get()=='\n')
break;
}
p=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<map[p];
p++;
}
cout<<endl;
}
return 0;
}