Submission #444597

#TimeUsernameProblemLanguageResultExecution timeMemory
444597keta_tsimakuridzeCloud Computing (CEOI18_clo)C++14
100 / 100
325 ms1228 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...