求助,案例5WA,其他能AC

P1320 压缩技术(续集版)

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,导致你最后一行数据没处理。


|