对照答案一样为什么还是WA?

P1319 压缩技术

aomiks @ 2024-08-17 22:16:04

数据2对照答案一致,为什么是WA呢?求指点!

#include <iostream>
using namespace std;

int main(){
    int n,a,ans=0;
    bool jo=0;

    cin>>n; 
    for(int i=1; i<=n*2; i++){
        cin>>a;
        if(jo==0){ //输出0 
            for(int j=1; j<=a; j++){
                if(ans%n==0 && ans!=0){ //换行 
                    cout<<endl;
                }
                cout<<0;
                ans++;
            }
            jo= 1;
        }
        else{ //输出1 
            for(int k=1; k<=a; k++){
                if(ans%n==0 && ans!=0){
                    cout<<endl;
                }
                cout<<1;
                ans++;
            }
            jo= 0;
        }
    }

    return 0;
}

by Dead_Butterfly @ 2024-08-17 22:26:28

@aomiks 数据发一下


by aomiks @ 2024-08-17 22:59:24

@Dead_Butterfly ``` 80 0 10 360 4 211 2 400 2 12 10 16 2 78 2 78 2 78 2 18 2 23 11 24 2 78 2 78 2 78 2 78 2 78 2 28 2 48 2 72 2 78 2 78 2 78 2 516 2 400 2 93 4 40 10 575 2 400 2 38 2 78 2 78 2 78 2 18 2 58 2 78 2 78 2 78 2 78 2 78 2 28 2 48 2 72 2 78 2 78 2 78 2 28 43 445 2 400 2 93 4 40

我想着是不是cin太多后导致错误了,所以我改用数组,先把所有输入都cin到数组里,结果发现n是7可以,如果是第2组数据n是80,我在devC++中只执行cin的那个for,后面的for语句不执行,请教啥原因呢?
```cpp
#include <iostream>
using namespace std;

int n,a[500],ans=0;
bool jo=0;

int main(){
    cin>>n; 
    for(int ii=1; ii<=n*2; ii++){
        cin>>a[ii];
    }   
    //////////////////n=80执行到这里就不往下走了 
    for(int i=1; i<=n*2; i++){
        if(jo==0){ //输出0 
            for(int j=1; j<=a[i]; j++){
                if(ans%n==0 && ans!=0){ //换行 
                    cout<<endl;
                }
                cout<<0;
                ans++;
            }
            jo= 1;
        }
        else{ //输出1 
            for(int k=1; k<=a[i]; k++){
                if(ans%n==0 && ans!=0){
                    cout<<endl;
                }
                cout<<1;
                ans++;
            }
            jo= 0;
        }
    }

    return 0;
}

by Dead_Butterfly @ 2024-08-17 23:02:33

@aomiks 谁告诉你一定是2n个的


by Dead_Butterfly @ 2024-08-17 23:03:29

@aomiks 题目只说了总和为n^2,没说输入的个数


by Dead_Butterfly @ 2024-08-17 23:05:59

@aomiks 所以最上面那个程序第二个循环要改掉


by aomiks @ 2024-08-17 23:16:46

@Dead_Butterfly 是的,谢谢大佬!误解题目了,数了一下测试数据正好是14个,7的2倍,呜呜呜~~


|