제출 #39856

#제출 시각아이디문제언어결과실행 시간메모리
39856igziBootfall (IZhO17_bootfall)C++14
13 / 100
50 ms8000 KiB
#include <bits/stdc++.h> #define maxN 505 #define maxA 505 using namespace std; long long n,i,j,s=0,a[maxN],b[maxN*maxA],c[maxN*maxA],tmp[maxN*maxA]; vector <long long> ans; int main() { cin>>n; for(i=0;i<n;i++){ cin>>a[i]; s+=a[i]; } for(i=0;i<=250000;i++){ b[i]=0; c[i]=0; } b[0]=1; for(i=0;i<n;i++){ for(j=250000;j>=0;j--){ if(b[j]!=0) b[a[i]+j]+=b[j]; } } if(s%2 || b[s/2]==0) cout<<0<<endl; else{ for(i=0;i<n;i++){ for(j=0;j<=250000+a[i];j++){ tmp[j]=0; } for(j=0;j<=250000;j++){ tmp[j]+=b[j]; tmp[j+a[i]]-=tmp[j]; } long long x; for(x=0;x<=250000;x++){ if(s-x-a[i]<0) break; if((s+x-a[i])%2==0 && tmp[(s-x-a[i])/2]>0) c[x]++; } } for(i=0;i<=250000;i++){ if(c[i]==n) 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:47: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...