Submission #1186776

#TimeUsernameProblemLanguageResultExecution timeMemory
1186776loomCloud Computing (CEOI18_clo)C++20
100 / 100
508 ms2204 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 5e18
#define nl '\n'

inline void solve(){
   vector<tuple<int,int,int>> v;

   int n;
   cin>>n;
   for(int i=0; i<n; i++){
      int c, f, p;
      cin>>c>>f>>p;
      v.push_back({f, c, -p});
   }
   int m;
   cin>>m;
   for(int i=0; i<m; i++){
      int c, f, p;
      cin>>c>>f>>p;
      v.push_back({f, -c, p});
   }
   sort(v.rbegin(), v.rend());

   int cr = 50*n;
   vector<int> ldp(cr+1, -inf), dp(cr+1);
   ldp[0] = 0;

   for(auto [f, c, p] : v){
      for(int j=0; j<=cr; j++){
         dp[j] = ldp[j];
         if(0 <= j-c and j-c <= cr) dp[j] = max(dp[j], ldp[j-c] + p);
      }
      ldp = dp;
   }

   cout<<max(0ll, *max_element(ldp.begin(), ldp.end()));
}  

signed main(){
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);cout.tie(NULL);

   int t = 1;
   //cin>>t;
   while(t--) solve();

   return 0;
}
#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...