제출 #1370538

#제출 시각아이디문제언어결과실행 시간메모리
1370538PieArmyTwo Dishes (JOI19_dishes)C++20
10 / 100
249 ms71876 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)

int n,m;
ll arr[1000023],brr[1000023];
ll sa[1000023],sb[1000023];
int ca[1000023],cb[1000023];
ll dp[2023][2023];

signed main(){
	ios_base::sync_with_stdio(23^23);cin.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>arr[i]>>sa[i]>>ca[i];
		arr[i]+=arr[i-1];
	}
	for(int i=1;i<=m;i++){
		cin>>brr[i]>>sb[i]>>cb[i];
		brr[i]+=brr[i-1];
	}
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			dp[i][j]=-1e18;
		}
	}
	dp[0][0]=0;
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			if(i<n){
				ll x=dp[i][j];
				if(arr[i+1]+brr[j]<=sa[i+1]){
					x+=ca[i+1];
				}
				dp[i+1][j]=max(dp[i+1][j],x);
			}
			if(j<m){
				ll x=dp[i][j];
				if(arr[i]+brr[j+1]<=sb[j+1]){
					x+=cb[j+1];
				}
				dp[i][j+1]=max(dp[i][j+1],x);
			}
		}
	}
	cout<<dp[n][m]<<endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…