ENE574 @ 2023-09-22 09:20:58
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
const int maxn=1e5;
void solve() {
int n=0,past=0,mark=0;
string s,str="";
while(1){
cin>>s;
if(cin.eof()){
break;
}
str+=s;
n++;
}
cout<<n<<" ";
for(int i=0;i<n*n;i++){
if(str[i]-'0'!=mark){
cout<<i-past<<" ";
past=i;
mark^=1;
}
}
cout<<n*n-past;
}
int main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
int T=1;
//cin >> T;
while(T--){
solve();
}
return 0;
}
by ENE574 @ 2023-09-22 09:32:50
在本地ide运行看,输出和测试数据是一样的,但是在洛谷的ide运行了一下,发现行数比答案少了一行
by ENE574 @ 2023-09-22 09:42:57
已解决,输入部分更改一下即可
while(cin>>s){
str+=s;
n++;
}
by 编码落寞 @ 2023-09-22 09:43:53
因为你判断cin.eof时,最后一行数据中就存在eof,导致你最后一行数据没处理。