#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MXC = 100005;
const int inf=5e18;
signed main(){
int n; cin>>n;
vector<vector<int>> all;
for (int i=0; i<n; i++){
int c,f,v; cin>>c>>f>>v;
all.push_back({f,c,-v});
}
int m; cin>>m;
for (int i=0; i<m; i++){
int c,f,v; cin>>c>>f>>v;
all.push_back({f,-c,v});
}
sort(all.begin(),all.end(),greater<vector<int>>());
vector<int> dp(MXC,-inf);
dp[0]=0;
for (auto x: all){
vector<int> prev=dp;
for (int i=0; i<MXC; i++){
if (i+x[1]>=0 and i+x[1]<MXC){
dp[i+x[1]] = max(dp[i+x[1]], prev[i]+x[2]);
}
}
}
int ans=0;
for (auto i: dp) ans=max(ans, i);
cout<<ans<<'\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |