제출 #1332538

#제출 시각아이디문제언어결과실행 시간메모리
1332538tkm_algorithmsCloud Computing (CEOI18_clo)C++20
18 / 100
1 ms1348 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(x,s,e) for (auto x=(s)-((s)>(e));x!=(e)-((s)>(e));((s)<(e)?x++:x--))
#define sz(x) (int)x.size()
const char nl = '\n';
const int N = 1e5+10;
const int inf = 1e9*2e3+100;

void solve() {
	int n; cin >> n;
	vector<P> a(n);
	for (auto &i: a) {
		int x;
		cin >> x >> i.first >> i.second;
	}
	
	int m; cin >> m;
	vector<P> b(m);
	for (auto &i: b) {
		int x;
		cin >> x >> i.first >> i.second;
	}
	
	sort(all(a));
	sort(all(b));
	
	int dp[n+1][m+1];
	memset(dp, 0, sizeof dp);
	
	rep(i, 1, n+1)
		rep(j, 1, m+1) {
			dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
			if (a[i-1].first >= b[j-1].first)
				dp[i][j] = max(dp[i][j], dp[i-1][j-1]+b[j-1].second-a[i-1].second);
		}
		
	cout << dp[n][m] << nl;
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
#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...