Submission #1167186

#TimeUsernameProblemLanguageResultExecution timeMemory
1167186SmuggingSpunCloud Computing (CEOI18_clo)C++20
0 / 100
3094 ms328 KiB
#include<bits/stdc++.h> #define taskname "A" using namespace std; typedef long long ll; template<class T>void maximize(T& a, T b){ if(a < b){ a = b; } } const int lim = 2e3 + 5; const ll INF = 1e18; struct Data{ int c, f, v; bool operator <(const Data& other){ return this->f < other.f; } }; int n, m; Data a[lim], b[lim]; namespace sub1{ void solve(){ ll ans = 0; vector<ll>dp; for(int mask = (1 << n) - 1; mask > 0; mask--){ ll cost = 0; vector<int>core(1, -1); for(int i = 0; i < n; i++){ if(1 << i & mask){ cost += a[i + 1].v; for(int j = a[i + 1].c; j > 0; j--){ core.emplace_back(a[i + 1].f); } } } int N = core.size(); dp.assign(N, 0); for(int i = 1; i <= m; i++){ for(int j = N - 1; j >= b[i].c && core[j - b[i].c + 1] >= b[i].f; j--){ maximize(dp[j], dp[j - b[i].c] + b[i].v); } } maximize(ans, *max_element(dp.begin(), dp.end()) - cost); } cout << ans; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(fopen(taskname".inp", "r")){ freopen(taskname".inp", "r", stdin); } cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i].c >> a[i].f >> a[i].v; } cin >> m; for(int i = 1; i <= m; i++){ cin >> b[i].c >> b[i].f >> b[i].v; } sort(a + 1, a + n + 1); sort(b + 1, b + m + 1); if(n <= 15){ sub1::solve(); } }

Compilation message (stderr)

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