Submission #499249

#TimeUsernameProblemLanguageResultExecution timeMemory
499249tmn2005Bootfall (IZhO17_bootfall)C++17
100 / 100
326 ms9932 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define ar array #define fr first #define sc second #define vec vector #define ret return #define ins insert #define mk make_pair #define pb push_back #define pf push_front #define pob pop_back #define pof pop_back #define int long long #define pii pair<int,int> #define all(s) s.begin(), s.end() #define allr(s) s.rbegin(), s.rend() #define NeedForSpeed ios::sync_with_stdio(0),cin.tie(0); #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> const int N=1e6+12,INF=1e9,mod = 1e9+7; bool iswowel(char n){ n = toupper(n); if(n == 'A' || n == 'O' || n == 'U' || n == 'E' || n == 'I') return true; else return false;} int n,m,k,x,y,l,r,o,ans,res,ok,mx,mn = INF; int a[N],b[N],dp[N],c; set<int>s; void add(int v){ for(int i=res; i>=0; i--)dp[i + v] += dp[i]; res += v; } void del(int v){ res -= v; for(int i=0; i<=res; ++i)dp[i + v] -= dp[i]; } main(){ NeedForSpeed cin>>n; dp[0] = 1; for(int i=0; i<n; i++){ cin>>a[i]; add(a[i]); ans += a[i]; } if((ans) % 2 || !dp[(ans)/2]){ cout<<0<<endl; ret 0; } for(int i=0; i<n; i++){ del(a[i]); for(int j=1; j<=ans; j++){ if((res+j) % 2 || !dp[(res+j)/2])b[j] = 1; } add(a[i]); } for(int i=1; i<=ans; i++)if(!b[i])s.ins(i); cout<<s.size()<<endl; for(int i : s)cout<<i<<" "; return 0; }

Compilation message (stderr)

bootfall.cpp:44:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   44 | main(){
      | ^~~~
#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...