Submission #38316

#TimeUsernameProblemLanguageResultExecution timeMemory
38316MrPlanyBootfall (IZhO17_bootfall)C++14
13 / 100
113 ms5112 KiB
//Bismillahi-rahmani-rahim #include <bits/stdc++.h> #include <algorithm> using namespace std; typedef long long ll; typedef map <int, int> mii; typedef pair <int, int> pii; typedef pair <ll, ll> pll; const int inf=1e9; #define azdar priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> #define Lebap ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0); #define mp make_pair #define pb push_back #define pf push_front #define pk pop_back #define ff first #define ss second #define all(x) x.begin(), x.end() //#include <conio.h> #include <climits> const int N = 500*500; int dp[N+509], dp1[N+509],n,a[509], sum; int san[N]; int main(){ Lebap; cin>>n; for(int i=1;i<=n;i++) cin>>a[i], sum += a[i]; dp[0]=1; for(int i=1;i<=n;i++){ for(int j=N;j>=0;j--){ dp[j+a[i]]+=dp[j]; } } if(sum%2 || dp[sum/2]==0) return cout << 0 , 0; for(int i=1;i<=n;i++){ memset( dp1 , 0, sizeof(dp1) ); for(int j=0;j<=N;j++){ dp1[j] += dp[j]; dp1[j+a[i]] -= dp1[j]; } for(int j=0;j<=N;j++){ if( (sum-a[i]+j)%2==0 && sum-a[i]-j>=0 && dp1[ (sum-a[i]-j)/2 ]!=0 ) san[j]++; } } vector <int> ans; for(int i=1;i<=N;i++ ) if(san[i]==n) ans.pb(i); cout << ans.size() << endl; for(int i=0;i<ans.size();i++) cout << ans[i] << " "; return 0; }

Compilation message (stderr)

bootfall.cpp: In function 'int main()':
bootfall.cpp:55:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<ans.size();i++) cout << ans[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...