제출 #1131303

#제출 시각아이디문제언어결과실행 시간메모리
1131303Pishka12Bootfall (IZhO17_bootfall)C++20
28 / 100
1095 ms3440 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; int main() { ll n; cin>>n; vector<ll> a(n+1); ll sum = 0; for (int i = 1;i<=n;i++) { cin>>a[i]; sum += a[i]; } if (sum%2 != 0){ cout<<0<<endl; return 0; } bitset<250000+1> dp; dp[0] = true; for (int i = 1;i<=n;i++) { dp |= dp<<a[i]; } if (!dp[sum/2]) { cout<<0<<endl; return 0; } set<ll> ans; for (int i = 1;i<=sum;i++) { ans.insert(i); } for (int i = 1;i<=n;i++) { bitset<250000+1> fe; fe[0] = true; for (int j = 1;j<=n;j++) { if (j != i) { fe |= fe<<a[j]; } } set<ll> co; ll resu = sum - a[i]; for (ll z = 1;z<fe.size();z++) { if (fe[z]) { ll de = abs(2*z - resu); if(ans.find(de) != ans.end()) { co.insert(de); } } } ans = co; } cout<<ans.size()<<endl; for (auto e : ans) { cout<<e<<' '; } 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...