Submission #38793

#TimeUsernameProblemLanguageResultExecution timeMemory
38793DenXman111Bootfall (IZhO17_bootfall)C++14
100 / 100
719 ms7920 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> #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; for (i = 1; i <= n; i++){ cin >> a[i]; for (j = sum; j >= 0; j--) (dp[j + a[i]] += dp[j]) %= MOD; sum += a[i]; } if (sum % 2 == 1 || dp[sum / 2] == 0) return cout << 0 << endl, 0; for (j = 0; j <= sum; j++) d[j] = dp[j]; for (i = 1; i <= n; i++){ for (j = 0; j <= sum; j++) { (d[j + a[i]] -= d[j] - MOD) %= MOD; x = abs(sum - j - a[i] - j); if (d[j] != 0 && ans[x] == i - 1) ans[x] = i; d[j] = dp[j]; } } 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:60: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...