This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define f first
#define s second
#define ll long long
using namespace std;
const int N=4005,mod=1e9+7;
ll dp[N*25];
int n,m;
pair< pair<int,int> ,pair<int,int > > p[N];
main(){
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n;
int sum = 0;
for(int i=1;i<=n;i++) {
cin >> p[i].s.f >>p[i].f.f>>p[i].s.s;
p[i].f.s = 1;
sum += p[i].s.f;
}
for(int i=1;i<=sum;i++) dp[i] = -1e14;
sum = 0;
cin>>m;
for(int i=1+n;i<=n+m;i++) {
cin>>p[i].s.f>>p[i].f.f>>p[i].s.s;
p[i].f.s = 0;
}
n+=m;
sort(p+1,p+n+1);
reverse(p+1,p+n+1);
for(int i=1; i<=n; i++) {
if(p[i].f.s) {
for(int j = sum; j >= 0; j--) {
dp[j + p[i].s.f] = max(dp[j] - p[i].s.s,dp[j + p[i].s.f]);
}
sum += p[i].s.f;
continue;
}
for(int j = p[i].s.f; j <= sum; j++) {
dp[j - p[i].s.f] = max(dp[j] + p[i].s.s,dp[j - p[i].s.f]);
}
}
ll ans = 0;
for(int i=0; i<=sum; i++) ans = max(ans,dp[i]);
cout<<ans;
}
Compilation message (stderr)
clo.cpp:10:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
10 | main(){
| ^~~~
# | 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... |