Submission #1091511

#TimeUsernameProblemLanguageResultExecution timeMemory
1091511xthappyCloud Computing (CEOI18_clo)C++14
100 / 100
941 ms2392 KiB
#include <bits/stdc++.h> #define mp make_pair #define X first #define Y second #define taskname "CloudComputing" using namespace std; typedef long long ll; typedef pair <int, int> ii; const int C = 100001; const ll INF = 1e18; struct order{ int type; /// 0 buy, 1: sell int c, f, v; order(int _t, int _c, int _f, int _v){ type = _t; c = _c; f = _f; v = _v; } }; int n, m; ll dp[C], nxtDp[C]; vector <order> ords; void readInput(){ cin >> n; for(int i = 1; i <= n; i++){ int c, f, v; cin >> c >> f >> v; ords.push_back(order(0, c, f, -v)); } cin >> m; for(int i = 1; i <= m; i++){ int c, f, v; cin >> c >> f >> v; ords.push_back(order(1, -c, f, v)); } } void solve(){ sort(ords.begin(), ords.end(), [](const order &a, const order &b){ if (a.f != b.f) return a.f > b.f; return a.type < b.type; }); dp[0] = 0; for(int i = 1; i < C; i++) dp[i] = -INF; for(order o : ords){ int c = o.c; int v = o.v; for(int i = 0; i < C; i++) nxtDp[i] = -INF; for(int i = 0; i < C; i++){ nxtDp[i] = max(nxtDp[i], dp[i]); if (0 <= i + c && i + c < C) nxtDp[i + c] = max(nxtDp[i + c], dp[i] + v); } for(int i = 0; i < C; i++) swap(dp[i], nxtDp[i]); } ll res = -1; for(int i = 0; i < C; i++) res = max(res, dp[i]); cout << res; } int main(){ if (fopen(taskname".inp", "r")){ freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout); } readInput(); solve(); return 0; }

Compilation message (stderr)

clo.cpp: In function 'int main()':
clo.cpp:77:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |         freopen(taskname".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:78:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |         freopen(taskname".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...