#pragma GCC optimize("O2")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
#define ALL(A) A.begin(), A.end()
#define FOR(i, a, b) for(int i = (a); i <= (int)(b); i++)
#define FORD(i, a, b) for(int i = (a); i >= (int)b; i--)
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define fi first
#define se second
const int oo = (int) 2e9;
const long long INF = (long long) 1e18;
const int MAXN = (int) 4e5 + 5;
int N, M;
struct Computer {
int c, f, v;
} com[MAXN];
struct Bills {
int c, f, v;
} bill[MAXN];
long long dp[MAXN];
signed main(void) {
ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
#define Hori ""
if (fopen(Hori".inp", "r")) {
freopen(Hori".inp", "r", stdin);
freopen(Hori".out", "w", stdout);
}
cin >> N;
for (int i = 1; i <= N; i++) {
cin >> com[i].c >> com[i].f >> com[i].v;
}
cin >> M;
for (int i = 1; i <= M; i++) {
cin >> bill[i].c >> bill[i].f >> bill[i].v;
}
sort(com + 1, com + 1 + N, [&](Computer u, Computer v) {
return u.f > v.f;
});
sort(bill + 1, bill + 1 + M, [&](Bills u, Bills v) {
return u.f > v.f;
});
FOR(i, 0, 100000) dp[i] = - INF;
int sum = 0, j = 1;
long long ans = 0;
dp[0] = 0;
for (int i = 1; i <= M; i++) {
while (j <= N && com[j].f >= bill[i].f) {
sum+= com[j].c;
for (int x = sum; x >= com[j].c; x--) {
dp[x] = max(dp[x], dp[x - com[j].c] - com[j].v);
}
j++;
}
for (int x = bill[i].c; x <= sum; x++) {
dp[x - bill[i].c] = max(dp[x - bill[i].c], dp[x] + bill[i].v);
ans = max(ans, dp[x - bill[i].c]);
}
}
cout << ans;
return void(cerr << "KO :" << TIME << "s "), (0 ^ 0);
}
컴파일 시 표준 에러 (stderr) 메시지
clo.cpp: In function 'int main()':
clo.cpp:31:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
31 | freopen(Hori".inp", "r", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:32:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
32 | freopen(Hori".out", "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# | 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... |