#include<bits/stdc++.h>
#define int long long
#define ss second
#define ff first
#define pb push_back
#define endl "\n"
using namespace std;
const int mod=1e9+7;
signed main(){
ios::sync_with_stdio(false);
cout.tie(0);
cin.tie(0);
int n,m;
cin>>n;
vector<array<int,4>> v;
for(int i=1; i<=n; i++) {
int c,f,u;
cin>>c>>f>>u;
v.pb({f,1,c,u});
}
cin>>m;
for(int i=1; i<=m; i++) {
int c,f,u;
cin>>c>>f>>u;
v.pb({f,0,c,u});
}
sort(v.rbegin(),v.rend());
vector<int> dp(2000*50+5,-1e18);
dp[0]=0;
for(auto [f,t,c,u]:v) {
if(t==1) {
for(int i=2000*50; i>=0; i--) {
if(i-c>=0) {
dp[i]=max(dp[i],dp[i-c]-u);
}
}
} else {
for(int i=0; i<=2000*50; i++) {
if(i-c>=0) {
dp[i-c]=max(dp[i-c],dp[i]+u);
}
}
}
}
int res=0;
for(int i=0; i<=2000*50; i++) {
res=max(res,dp[i]);
}
cout<<res;
}
# | 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... |