제출 #472003

#제출 시각아이디문제언어결과실행 시간메모리
472003dattranxxxCloud Computing (CEOI18_clo)C++11
100 / 100
1753 ms2116 KiB
/*..... . .';:;;;;'':. .:::::::::cl' .c;;o,.cc::::. ';l:.. ..;;;;. .,::.'',:... '.'cxdo;..d. d..:olo.'dO. kk. .. :kOO. .k0k...'000d. c00'.,00k:.. l00..xOk;..co' .l00cdOO, ...oO;. .,;;. .:ld::do . .OOx'. ,cokcc,......;. .. oOO00Oooc' .oOOOc..... ....... ..oK000OOOOOl. :OOOO:.... .'... .lO0KK000OOOOOOo. ,OOO00; .. . x0KK0000OOOOOOO:. 'ck00k. ... ...... ... ':000OOOOOOOOOk;. :OOO0kdld:':O0:.,,,l'.':'OOOOOOo:l:;'. .;ooolOOOOOO000O00000OOOOOOx:.. .''....;coolc,'',;.*/ #include <bits/stdc++.h> #define print(_v) for (auto &_ : _v) {cerr << _ << ' ';} cerr << endl; using namespace std; using ll = long long; const ll oo = 1e18; struct S { int c, f, v, t; S(int c, int f, int v, int t): c(c), f(f), v(v), t(t) {} }; const int N = 2000; ll dp[2][N * 50 + 1]; vector<S> a; int n, m; int main() { cin.tie(0)->sync_with_stdio(0); cout.tie(0); cin >> n; a.reserve(n); int sum_c = 0; for (int i = 0, c, f, v; i < n; ++i) { cin >> c >> f >> v; a.emplace_back(c, f, v, 0); sum_c += c; } cin >> m; for (int i = 0, c, f, v; i < m; ++i) { cin >> c >> f >> v; a.emplace_back(c, f, v, 1); } sort(a.begin(), a.end(), [&](S& u, S& v) { if (u.f == v.f) return u.t < v.t; return u.f > v.f; }); fill(begin(dp[0]), end(dp[0]), -oo); dp[0][0] = 0; for (int i = 0; i < a.size(); ++i) { int cur = i & 1, nxt = cur ^ 1; fill(begin(dp[nxt]), end(dp[nxt]), -oo); for (int j = 0; j <= sum_c; ++j) if (dp[cur][j] != -oo) { dp[nxt][j] = max(dp[nxt][j], dp[cur][j]); if (a[i].t == 0) { // mua dp[nxt][j + a[i].c] = max(dp[nxt][j + a[i].c], dp[cur][j] - a[i].v); } else { // ban if (j >= a[i].c) dp[nxt][j - a[i].c] = max(dp[nxt][j - a[i].c], dp[cur][j] + a[i].v); } } } ll res = 0; for (int i = 0; i <= sum_c; ++i) res = max(res, dp[int(a.size()) & 1][i]); cout << res; return 0; }

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

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