이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define sp " "
#define endl "\n"
#define fastio() cin.tie(0), ios_base::sync_with_stdio(0)
#define pii pair<int, int>
#define st first
#define nd second
#define pb push_back
#define N 2005
#define L(node) node * 2
#define R(node) node * 2 + 1
#define int long long
#define M 51
int dp[2][N][M][2];
array<int, 3> cust[N], comp[N];
const int INF = 2e18 + 7;
int32_t main()
{
fastio();
int n;
cin>>n;
for (int i = 1; i <= n; i++)
cin>>comp[i][1]>>comp[i][0]>>comp[i][2];
int m;
cin>>m;
for (int i = 1; i <= m; i++)
cin>>cust[i][1]>>cust[i][0]>>cust[i][2];
sort(comp + 1, comp + 1 + n);
sort(cust + 1, cust + 1 + m);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
for (int l = 1; l >= 0; l--)
{
for (int k = 0; k < M; k++)
{
int t1 = -INF, t2 = -INF, t3 = -INF, t4 = -INF;
t1 = dp[1][j - 1][k][l];
t3 = dp[0][j][k][0];
if (l == 0 && k + comp[i][1] >= cust[j][1] && k + comp[i][1] - cust[j][1] < M && comp[i][0] >= cust[j][0])
t2 = dp[1][j - 1][k + comp[i][1] - cust[j][1]][1] - comp[i][2] + cust[j][2];
if (l == 0 && k + comp[i][1] < M)
t2 = max(t2, dp[1][j][k + comp[i][1]][1] - comp[i][2]);
if (k >= cust[j][1] && comp[i][0] >= cust[j][0])
t4 = dp[1][j - 1][k - cust[j][1]][l] + cust[j][2];
int ans = max(t1, t2);
ans = max(ans, t3);
ans = max(ans, t4);
dp[1][j][k][l] = ans;
}
}
}
for (int j = 1; j <= m; j++)
{
for (int l = 1; l >=0; l--)
{
for (int k = 0; k < M; k++)
dp[0][j][k][l] = dp[1][j][k][l];
}
}
}
cout<<dp[0][m][0][0]<<endl;
cerr<<"time taken : "<<(float)clock() / CLOCKS_PER_SEC<<" seconds\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... |