제출 #38789

#제출 시각아이디문제언어결과실행 시간메모리
38789DenXman111Bootfall (IZhO17_bootfall)C++11
13 / 100
0 ms7228 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); ios_base::sync_with_stdio(false); cin.tie(0); srand(time(0)); 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]; 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]; 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; }

컴파일 시 표준 에러 (stderr) 메시지

bootfall.cpp: In function 'int main()':
bootfall.cpp:63: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...