제출 #39847

#제출 시각아이디문제언어결과실행 시간메모리
39847igziBootfall (IZhO17_bootfall)C++14
28 / 100
1000 ms128064 KiB
#include <bits/stdc++.h>
#define maxN 505
#define maxA 505

using namespace std;
bool b[maxN][maxN*maxA];
int n,i,j,s=0,a[maxN];
vector <int> v,ans;
bool moze(int x){
for(int i=0;i<n;i++){
    if((s+x-a[i])%2 || !b[i][(s+x-a[i])/2]) return false;
}
return true;
}

int main()
{
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a[i];
        s+=a[i];
    }
    for(j=0;j<=n;j++){
    for(i=1;i<=250000;i++){
        b[j][i]=false;
    }}
    for(j=0;j<=n;j++){
    b[j][0]=false;
    v.push_back(0);
    for(i=0;i<n;i++){
        int t,k;
        if(i==j) continue;
        t=v.size();
        for(k=0;k<t;k++){
            if(!b[j][a[i]+v[k]]){
                b[j][a[i]+v[k]]=true;
                v.push_back(a[i]+v[k]);
            }
        }
    }
    v.clear();
    }
    if(s%2 || !b[n][s/2]) cout<<0<<endl;
    else{
        for(i=0;i<=250000;i++){
            if(moze(i)) ans.push_back(i);
        }
        cout<<ans.size()<<endl;
        for(i=0;i<ans.size();i++){
            cout<<ans[i]<<" ";
        }
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bootfall.cpp: In function 'int main()':
bootfall.cpp:49:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(i=0;i<ans.size();i++){
                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...