Submission #1201934

#TimeUsernameProblemLanguageResultExecution timeMemory
1201934peraCloud Computing (CEOI18_clo)C++20
100 / 100
229 ms1096 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
   int n;
   cin >> n;
   vector<array<int , 4>> e;
   for(int i = 0;i < n;i ++){
      int c , f , v;
      cin >> c >> f >> v;
      e.emplace_back(array<int , 4>{f , 1 , c , v});
   }
   int m;
   cin >> m;
   for(int i = 0;i < m;i ++){
      int c , f , v;
      cin >> c >> f >> v;
      e.emplace_back(array<int , 4>{f , 0 , c , v});
   }
   sort(e.rbegin() , e.rend());
   int L = n * 50;
   vector<long long> dp(L + 1 , -1E18);
   dp[0] = 0LL;
   for(int i = 0;i < n + m;i ++){
      if(e[i][1] > 0){
         for(int j = L;j >= e[i][2];j --){
            dp[j] = max(dp[j] , dp[j - e[i][2]] - e[i][3]);
         }
      }else{
         for(int j = 0;j + e[i][2] <= L;j ++){
            dp[j] = max(dp[j] , dp[j + e[i][2]] + e[i][3]);
         }
      }
   }
   cout << *max_element(dp.begin() , dp.end()) << '\n';
}
/*
4
4 2200 700
2 1800 10
20 2550 9999
4 2000 750
3
1 1500 300
6 1900 1500
3 2400 4550
*/
#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...