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>
using namespace std;
struct noe{
long long ci,fi,vi;
};
const int maxa=100000+5,maxn=2000;
long long n,m,dp[2][maxa],inf=1e15;
vector<noe>alln,allm;
bool cmp(pair<int,pair<int,int>> a,pair<int,pair<int,int>> b){
if(a.first==b.first){
return a.second.first<b.second.first;
}
return a.first<b.first;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
alln.resize(n+1);
for(int i=0;i<2;i++){
for(int j=0;j<maxa;j++){
dp[i][j]=-inf;
}
}
for(int i=0;i<n;i++){
cin>>alln[i].ci>>alln[i].fi>>alln[i].vi;
}
cin>>m;
allm.resize(m+1);
for(int i=0;i<m;i++){
cin>>allm[i].ci>>allm[i].fi>>allm[i].vi;
}
vector<pair<int,pair<int,int>>>fake;
for(int i=0;i<n;i++){
fake.push_back(make_pair(alln[i].fi,make_pair(2,i)));
}
for(int i=0;i<m;i++){
fake.push_back(make_pair(allm[i].fi,make_pair(1,i)));
}
dp[1][0]=0;
sort(fake.begin(),fake.end(),cmp);
for(int i=(int)fake.size()-1;i>=0;i--){
swap(dp[1],dp[0]);
// cout<<fake[i].first<<"\n";
for(int j=0;j<maxa;j++){
dp[1][j]=-inf;
}
if(fake[i].second.first==1){
int ind=fake[i].second.second;
for(int j=0;j<maxa;j++){
if(j<allm[ind].ci){
dp[1][j]=max(dp[1][j],dp[0][j]);
continue;
}
dp[1][j]=max(dp[1][j],dp[0][j]);
dp[1][j-allm[ind].ci]=max(dp[1][j-allm[ind].ci],dp[0][j]+allm[ind].vi);
}
}
else{
int ind=fake[i].second.second;
for(int j=0;j<maxa;j++){
if(j+alln[ind].ci>=maxa){
dp[1][j]=max(dp[1][j],dp[0][j]);
continue;
}
dp[1][j]=max(dp[1][j],dp[0][j]);
dp[1][j+alln[ind].ci]=max(dp[1][j+alln[ind].ci],dp[0][j]-alln[ind].vi);
}
}
}
long long res=0;
for(int i=0;i<maxa;i++){
res=max(res,dp[1][i]);
}
cout<<res<<"\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... |