Submission #163782

#TimeUsernameProblemLanguageResultExecution timeMemory
163782MvCBootfall (IZhO17_bootfall)C++11
28 / 100
1048 ms9100 KiB
#pragma GCC target("avx2") #pragma GCC optimization("O3") #pragma GCC optimization("unroll-loops") #include <bits/stdc++.h> #define rc(x) return cout<<x<<endl,0 #define pb push_back #define mkp make_pair #define in insert #define er erase #define fd find #define fr first #define sc second typedef long long ll; typedef long double ld; const ll INF=0x3f3f3f3f3f3f3f3f; const ll llinf=(1LL<<62); const int inf=(1<<30); const int nmax=5e2+5; const int mmax=500*500; const int mod=1e9+7; using namespace std; int n,a[nmax],i,j,sm; vector<int>vc; bitset<mmax>f[nmax]; int main() { //freopen("sol.in","r",stdin); //freopen("sol.out","w",stdout); //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); cin>>n; for(i=1;i<=n;i++)cin>>a[i],sm+=a[i]; if(sm&1)rc(0); for(i=0;i<=n;i++) { f[i][0]=1; for(j=1;j<=n;j++) { if(i==j)continue; f[i]|=(f[i]<<a[j]); } if(!f[0][sm/2])rc(0); } for(i=1;i<=sm;i++) { for(j=1;j<=n;j++) { if((sm-a[j]+i)&1 || !f[j][(sm-a[j]+i)/2])break; } if(j==n+1)vc.pb(i); } cout<<(int)vc.size()<<endl; for(i=0;i<(int)vc.size();i++)cout<<vc[i]<<" "; cout<<endl; return 0; }

Compilation message (stderr)

bootfall.cpp:2:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("O3")
 
bootfall.cpp:3:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("unroll-loops")
#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...