답안 #532046

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
532046 2022-03-02T04:26:37 Z 8e7 Two Dishes (JOI19_dishes) C++17
0 / 100
153 ms 26336 KB
//Challenge: Accepted
#include <bits/stdc++.h>
using namespace std;
#ifdef zisk
void debug(){cout << endl;}
template<class T, class ... U> void debug(T a, U ... b){cout << a << " ", debug(b...);}
template<class T> void pary(T l, T r) {
	while (l != r) cout << *l << " ", l++;
	cout << endl;
}
#else
#define debug(...) 0
#define pary(...) 0
#endif
#define ll long long
#define maxn 200005
#define pii pair<int, int>
#define ff first
#define ss second
#define io ios_base::sync_with_stdio(0);cin.tie(0);
struct obj{
	ll t, lim, val;
	obj(){t = lim = val = 0;}
} a[maxn], b[maxn];
ll pref[maxn], v[maxn], pm[maxn];
const ll inf = 1LL<<60;
int main() {
	io
	int n, m;
	cin >> n >> m;
	for (int i = 0;i < n;i++) {
		cin >> a[i].t >> a[i].lim >> a[i].val;	
		if (i) a[i].t += a[i-1].t;
	}
	for (int i = 0;i < m;i++) {
		cin >> b[i].t >> b[i].lim >> b[i].val;
		if (i) b[i].t += b[i-1].t;
		v[i] = b[i].t;
		pref[i] = b[i].val + (i ? pref[i-1] : 0);
	}
	pary(v, v + m);
	ll l = a[0].lim;	
	ll cur = 0, ti = 0, ans = -inf;
	if (v[m-1] > l) {
		int ind = upper_bound(v, v + m, l) - v - 1;
		if (ind >= 0) ans = max(ans, pref[ind]);
	} else if (v[m-1] + a[0].t > l) {
		ans = pref[m-1];	
	}
	for (int i = 0;i < n;i++) {
		ti += a[i].t;	
		cur += a[i].val;
		if (i < n - 1 && ti + a[i+1].t + v[m-1] <= l) continue;
		int ind = upper_bound(v, v + m, l - ti) - v - 1;	
		debug(i, ind, l - ti, cur, pref[ind]);
		if (ind < 0) continue;
		ans = max(ans, cur + pref[ind]);
	}
	cout << ans << endl;
		
}

Compilation message

dishes.cpp: In function 'int main()':
dishes.cpp:14:19: warning: statement has no effect [-Wunused-value]
   14 | #define pary(...) 0
      |                   ^
dishes.cpp:42:2: note: in expansion of macro 'pary'
   42 |  pary(v, v + m);
      |  ^~~~
dishes.cpp:13:20: warning: statement has no effect [-Wunused-value]
   13 | #define debug(...) 0
      |                    ^
dishes.cpp:56:3: note: in expansion of macro 'debug'
   56 |   debug(i, ind, l - ti, cur, pref[ind]);
      |   ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 153 ms 26336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 9704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 9704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 9704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 9704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 9704 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 153 ms 26336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 153 ms 26336 KB Output isn't correct
2 Halted 0 ms 0 KB -