# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
389662 | denkendoemeer | Two Dishes (JOI19_dishes) | C++14 | 3271 ms | 250168 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>
#define ll long long
const int inf=1e9;
using namespace std;
ll n,m,ans,a[1000005],b[1000005],s[1000005],t[1000005],p[1000005],q[1000005],suma[1000005],sumb[1000005],d[1000005],lim[1000005];
vector<int>v[1000005],aux;
set<int>st;
void update(int poz)
{
ll num=0;
while(poz<=m){
int nex=*st.upper_bound(poz);
if (d[poz]-num>lim[poz]){
d[poz]-=num;
break;
}
num+=lim[poz]-d[poz];
d[poz]=lim[poz];
st.erase(poz);
poz=nex;
}
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
scanf("%lld%lld",&n,&m);
int i;
for(i=1;i<=n;i++){
scanf("%lld%lld%lld",&a[i],&s[i],&p[i]);
suma[i]=suma[i-1]+a[i];
}
for(i=1;i<=m;i++){
scanf("%lld%lld%lld",&b[i],&t[i],&q[i]);
sumb[i]=sumb[i-1]+b[i];
if (sumb[i]>t[i])
continue;
d[i]=lim[i]=q[i];
int auxi=upper_bound(suma,suma+n+1,t[i]-sumb[i])-suma;
v[auxi].push_back(i);
}
st.insert(m+1);
for(i=1;i<=n;i++){
aux.clear();
if (suma[i]<=s[i]){
int auxi=upper_bound(sumb,sumb+m+1,s[i]-suma[i])-sumb-1;
d[0]+=p[i];
d[auxi+1]-=p[i];
st.insert(auxi+1);
aux.push_back(auxi+1);
}
for(auto it:v[i]){
lim[it]=0;
st.insert(it);
aux.push_back(it);
}
for(auto it:aux)
update(it);
}
for(i=0;i<=m;i++)
ans+=d[i];
printf("%lld\n",ans);
return 0;
}
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... |