Submission #132072

#TimeUsernameProblemLanguageResultExecution timeMemory
132072SirCenessTwo Dishes (JOI19_dishes)C++14
0 / 100
439 ms57560 KiB
#include <bits/stdc++.h>

using namespace std;
#define mod 1000000007
#define mp make_pair
#define pb push_back
#define bas(x) #x << ": " << x << " "
#define prarr(x, n) cout << #x << ": "; for (int qsd = 0; qsd < n; qsd++) cout << x[qsd] << " "; cout << endl;
#define prarrv(x) cout << #x << ": "; for (int qsd = 0; qsd < (int)x.size(); qsd++) cout << x[qsd] << " "; cout << endl;
#define inside sl<=l%&&r<=sr
#define outside sr<l||r<sl

typedef long long ll;

struct node {
	ll a, b, top;
	double sirala;
	
	bool operator<(const node& a){
		return sirala < a.sirala;
	}
};

node a[200002];
node b[200002];
vector<node> ab;
int n, m;
int dp[2002][2002];

ll get(int kim, int dayi){
	if (dayi == -1) return 0;
	else if (kim == 0) return a[dayi].top;
	else return b[dayi].top;
}

int main(){
	cin >> n >> m;
	ll cur = 0;
	for (int i = 0; i < n; i++){
		int x, y, c;
		cin >> x >> y >> c;
		cur += x;
		a[i] = {x, y, cur, y};
	}
	cur = 0;
	for (int i = 0; i < m; i++){
		int x, y, c;
		cin >> x >> y >> c;
		cur += x;
		b[i] = {x, y, cur, y};
	}
	
	for (int i = 0; i <= n; i++) 
	for (int j = 0; j <= m; j++)
	dp[i][j] = -1;
	
	dp[0][0] = 0;
	for (int i = 0; i <= n; i++){
		for (int j = 0; j <= m; j++){
			if (i != n) dp[i+1][j] = max(dp[i+1][j], dp[i][j] + ((get(0, i) + get(1, j-1) <= a[i].b) ? 1 : 0));
			if (j != m) dp[i][j+1] = max(dp[i][j+1], dp[i][j] + ((get(0, i-1) + get(1, j) <= b[j].b) ? 1 : 0));
		}
	}
	
	cout << dp[n][m] << endl;
	
}

Compilation message (stderr)

dishes.cpp: In function 'int main()':
dishes.cpp:43:23: warning: narrowing conversion of 'y' from 'int' to 'double' inside { } [-Wnarrowing]
   a[i] = {x, y, cur, y};
                       ^
dishes.cpp:50:23: warning: narrowing conversion of 'y' from 'int' to 'double' inside { } [-Wnarrowing]
   b[i] = {x, y, cur, y};
                       ^
#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...