제출 #1284390

#제출 시각아이디문제언어결과실행 시간메모리
1284390I_FloPPed21Bootfall (IZhO17_bootfall)C++20
0 / 100
2 ms568 KiB
#include <bits/stdc++.h> using namespace std; int n; int cnt[500*500*2]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; long long suma=0; vector<int>v(n+1,0); for(int i=1; i<=n; i++) { cin>>v[i]; suma+=v[i]; } vector<int>ans; bitset<500*500+1>dp; for(int i=n+1; i>=1; i--) { //bitset<500*500+1>dp; dp[0]=1; long long suma2=0; for(int j=1; j<=n; j++) { if(i!=j) { suma2+=v[j]; dp|=(dp<<v[j]); } } if(i==n+1) { if(!dp[suma2/2]) { cout<<0<<'\n'; return 0; } continue; } for(int j=0; j<=suma/2+1; j++) { if(dp[j]) { //cout<<j<<" "<<dp[j]<<" "<<i<<" "<<suma2<<'\n'; long long other=suma2-j; if(other-j>0) { cnt[other-j]++; if(cnt[other-j]==n) ans.push_back(other-j); } } dp[j]=0; } } if(ans.empty()) cout<<0; else { sort(ans.begin(),ans.end()); cout<<ans.size()<<'\n'; for(auto u:ans) cout<<u<<" "; } return 0; }
#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...