Submission #1154395

#TimeUsernameProblemLanguageResultExecution timeMemory
1154395nikdCloud Computing (CEOI18_clo)C++20
100 / 100
752 ms2048 KiB
#include <bits/stdc++.h> #define BG 1e5 #define ll long long using namespace std; int main(){ int n; cin >> n; vector<int> c(n); vector<int> f(n); vector<int> v(n); for(int i = 0; i<n; i++) cin >> c[i] >> f[i] >> v[i]; int m; cin >> m; vector<int> C(m); vector<int> F(m); vector<int> V(m); for(int i = 0; i<m; i++) cin >> C[i] >>F[i] >> V[i]; vector<ll> knap(BG+1, -(1ll<<60)); vector<ll> last(BG+1, -(1ll<<60)); vector<int> q(n+m); iota(q.begin(), q.end(), 0); auto get = [&](int i, int val)-> int{ if(i>=n){ if(val == 0) return -C[i-n]; if(val==1) return F[i-n]; if(val==2) return V[i-n]; } if(val==0) return c[i]; if(val==1) return f[i]; if(val==2) return -v[i]; }; sort(q.begin(), q.end(), [&](int a, int b)->bool{ if( get(a, 1) == get(b, 1)) return a < b; return get(a, 1) > get(b, 1); }); knap[0] = 0; for(int i: q){ last = knap; for(int j = 0; j<=BG; j++){ if(j-get(i, 0) >= 0 && j-get(i, 0) <= BG && last[j-get(i, 0)] != -(1ll<<60)){ knap[j] = max(knap[j], last[j-get(i, 0)]+get(i, 2)); } } } ll sol = 0; for(int i = 0; i<=BG; i++) sol = max(sol, knap[i]); cout << sol << '\n'; }

Compilation message (stderr)

clo.cpp: In lambda function:
clo.cpp:32:5: warning: control reaches end of non-void function [-Wreturn-type]
   32 |     };
      |     ^
#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...