Submission #894574

#TimeUsernameProblemLanguageResultExecution timeMemory
894574AndreyBootfall (IZhO17_bootfall)C++14
100 / 100
936 ms17348 KiB
#include <bits/stdc++.h> #pragma GCC target("popcnt") using namespace std; bitset<501> idk[260001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,sb = 0; cin >> n; vector<int> haha(n); for(int i = 0; i < n; i++) { cin >> haha[i]; sb+=haha[i]; } for(int i = 0; i < 501; i++) { idk[0][i] = 1; } for(int i = 0; i < n; i++) { for(int j = 250000; j >= haha[i]; j--) { bool a = idk[j][i]; idk[j]|=idk[j-haha[i]]; idk[j][i] = a; } } vector<int> ans(0); for(int i = 1; i <= 250000; i++) { bool yeah = true; if(sb%2 == 0) { if(idk[sb/2][n] == 0) { yeah = false; } for(int j = 0; j < n; j++) { if((sb+i-haha[j])%2 == 1) { yeah = false; } if((sb+i-haha[j])/2 > 250000 || idk[(sb+i-haha[j])/2][j] == 0) { yeah = false; } } if(yeah) { ans.push_back(i); } } } cout << ans.size() << "\n"; for(int i = 0; i < ans.size(); i++) { cout << ans[i] << " "; } return 0; }

Compilation message (stderr)

bootfall.cpp: In function 'int main()':
bootfall.cpp:50:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |     for(int i = 0; i < ans.size(); 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...