#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+2;
struct Com {
ll c,f,v,req;
};
Com C;
int main() {
ll t,n,m,ans,s,sum,x,y,r,p,i,j;
cin >> n;
vector < Com > v;
for (i=1; i <= n; i ++) {
cin >> C.c >> C.f >> C.v;
C.req=0;
v.push_back(C);
}
cin >> m;
for (i=1; i <= m; i ++) {
cin >> C.c >> C.f >> C.v;
C.req=1;
v.push_back(C);
}
sort(v.begin(),v.end(),[](Com& A,Com& B){
if ( A.f == B.f) return A.req < B.req;
return A.f > B.f;
});
vector < ll > dp(N+2,-1e16);
dp[0]=0;
ans=0;
for (Com& A : v) {
if ( A.req == 1) {
for (i=0; i+A.c <= N; i ++) {
dp[i]=max(dp[i],dp[i+A.c]+A.v);
}
}
else {
for (i=N; i >= A.c; i --) {
dp[i]=max(dp[i],dp[i-A.c]-A.v);
}
}
for (i=0; i <= N; i ++) ans=max(ans,dp[i]);
}
cout << ans;
}
# | 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... |