Submission #38799

#TimeUsernameProblemLanguageResultExecution timeMemory
38799DenXman111Bootfall (IZhO17_bootfall)C++14
28 / 100
1000 ms7208 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <map> #include <vector> #include <cstring> #include <iomanip> #include <set> #include <sstream> #include <ctime> #include <bitset> #define rust(a, b, c, d) sqrt(sqr(a - c) + sqr(b - d)) #define sqr(a) (a)*(a) #define p_b push_back #define m_p make_pair #define fi first #define se second #define endl "\n" typedef long long ll; typedef long double ld; const int MAXINT = 2147483640; const ll MAXLL = 9223372036854775800LL; const ll MAXN = 323456; const ll MOD = 1000000123; const ll MAXANS = 1000000007; using namespace std; int a[MAXN], ans[MAXN], dp[MAXN], d[MAXN]; int main() { // freopen("bootfall.in", "r", stdin); // freopen("bootfall.out", "w", stdout); int n, i, j, sum = 0, x = 0; cin >> n; dp[0] = 1; if (sum % 2 == 1 || dp[sum / 2] == 0) return cout << 0 << endl, 0; for (j = 0; j <= sum; j++) d[j] = dp[j]; bitset < 255555 > dp, now, zero; dp[0] = 1; for (i = 1; i <= n; i++){ cin >> a[i]; now = dp; dp <<= a[i]; dp |= now; sum += a[i]; } if (sum % 2 == 1 || dp[sum / 2] == 0) return cout << 0, 0; for (i = 1; i <= n; i++){ dp &= zero; dp[0] = 1; for (j = 1; j <= n; j++) if (j != i){ now = dp; dp <<= a[j]; dp |= now; } for (j = 0; j <= sum; j++) if (dp[j]){ x = abs(sum - j - a[i] - j); if (ans[x] == i - 1) ans[x] = i; } } vector < int > v; for (i = 0; i <= sum; i++) if (ans[i] == n) v.p_b(i); cout << v.size() << endl; for (i = 0; i < v.size(); i++) cout << v[i] << " "; return 0; }

Compilation message (stderr)

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