Submission #1288291

#TimeUsernameProblemLanguageResultExecution timeMemory
1288291simona1230Two Dishes (JOI19_dishes)C++20
0 / 100
96 ms16080 KiB
#include <bits/stdc++.h> using namespace std; const long long maxn=1e6+5; long long n,m; long long a[maxn],s[maxn],p[maxn]; long long b[maxn],t[maxn],q[maxn]; long long pa[maxn],pb[maxn]; long long ha[maxn],hb[maxn]; void read() { cin>>n>>m; for(long long i=1;i<=n;i++) cin>>a[i]>>s[i]>>p[i]; for(long long i=1;i<=m;i++) cin>>b[i]>>t[i]>>q[i]; for(long long i=1;i<=n;i++) pa[i]=pa[i-1]+a[i], ha[i]=ha[i-1]+p[i]; for(long long i=1;i<=m;i++) pb[i]=pb[i-1]+b[i], hb[i]=hb[i-1]+q[i]; } void subt() { int j=0; while(j<=m&&pb[j]<=s[1])j++; long long ans=hb[j-1]; for(int i=1;i<=n;i++) { while(j>1&&pb[j-1]+pb[i]>s[1])j--; ans=max(ans,ha[i]+hb[j-1]); } cout<<ans<<endl; } long long dp[2001][2001]; void solve() { for(long long i=0;i<=n;i++) { for(long long j=0;j<=m;j++) { if(i==0&&j==0)continue; if(i==0)dp[i][j]=dp[i][j-1]+((pa[i]+pb[j])<=t[j])*q[j]; else if(j==0)dp[i][j]=dp[i-1][j]+((pa[i]+pb[j])<=s[i])*p[i]; else dp[i][j]=max(dp[i-1][j]+((pa[i]+pb[j])<=s[i])*p[i],dp[i][j-1]+((pa[i]+pb[j])<=t[j])*q[j]); } } cout<<dp[n][m]<<endl; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); read(); subt(); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...