# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
293880 | arnold518 | Two Dishes (JOI19_dishes) | C++14 | 7 ms | 1024 KiB |
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;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int MAXN = 2000;
struct Point
{
int x, y; ll w;
};
vector<Point> V;
int N, M;
ll ans;
ll A[MAXN+10], S[MAXN+10], P[MAXN+10], B[MAXN+10], T[MAXN+10], Q[MAXN+10];
ll dp[MAXN+10];
int main()
{
scanf("%d%d", &N, &M);
for(int i=1; i<=N; i++) scanf("%lld%lld%lld", &A[i], &S[i], &P[i]), A[i]+=A[i-1];
for(int i=1; i<=M; i++) scanf("%lld%lld%lld", &B[i], &T[i], &Q[i]), B[i]+=B[i-1];
for(int i=1; i<=N; i++)
{
int t=upper_bound(B, B+M+1, S[i]-A[i])-B-1;
if(t<0) continue;
if(t==M) { ans+=P[i]; continue; }
int x=i, y=t;
x--; y++;
V.push_back({x, y, -P[i]}); ans+=P[i];
}
for(int i=1; i<=M; i++)
{
int t=upper_bound(A, A+N+1, T[i]-B[i])-A-1;
if(t<0) continue;
if(t==N) { ans+=Q[i]; continue; }
int y=i, x=t;
V.push_back({x, y, Q[i]});
}
sort(V.begin(), V.end(), [&](const Point &p, const Point &q)
{
if(p.x!=q.x) return p.x<q.x;
if(p.w!=q.w) return p.y>q.y;
return p.w>q.w;
});
for(int i=0; i<V.size(); i++)
{
for(int j=V[i].y; j<=M; j++) dp[j]+=V[i].w;
for(int j=1; j<=M; j++) dp[j]=max(dp[j], dp[j-1]);
}
printf("%lld\n", dp[M]+ans);
}
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |