Submission #85703

#TimeUsernameProblemLanguageResultExecution timeMemory
85703farukkastamonudaBootfall (IZhO17_bootfall)C++14
100 / 100
499 ms5580 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define lo long long #define inf 1000000000 #define md 1000000007 #define pb push_back #define li 505 using namespace std; lo int n,A[li],sum,dp[li*li]; int vis[li*li]; vector<lo int> v; void add(lo int x){ sum+=x; for(lo int i=500*500;i>=x;i--){ dp[i]+=dp[i-x]; } } void del(lo int x){ sum-=x; for(lo int i=x;i<=500*500;i++){ dp[i]-=dp[i-x]; } } int main(){ scanf("%lld",&n); dp[0]=1; for(int i=1;i<=n;i++) {scanf("%lld",&A[i]);add(A[i]);} if(sum%2 || !dp[sum/2]){ printf("0\n"); return 0; } for(int i=1;i<=n;i++){ del(A[i]); for(int j=1;j<=500*500;j++){ if((sum+j)%2!=0 || !dp[(sum+j)/2]){ vis[j]=1; } } add(A[i]); } //~ printf("%d\n",(int)v.size()); //~ return 0; for(int i=1;i<=500*500;i++){ if(!vis[i]) v.pb(i); } printf("%lld\n",(lo int)v.size()); //~ return 0; for(int i=0;i<(int)v.size();i++){ printf("%lld ",v[i]); } return 0; }

Compilation message (stderr)

bootfall.cpp: In function 'int main()':
bootfall.cpp:27:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld",&n);
  ~~~~~^~~~~~~~~~~
bootfall.cpp:29:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1;i<=n;i++) {scanf("%lld",&A[i]);add(A[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...