제출 #529447

#제출 시각아이디문제언어결과실행 시간메모리
529447fhvirusSelf Study (JOI22_ho_t2)C++17
100 / 100
308 ms5060 KiB
#include <bits/stdc++.h>
using namespace std;
typedef int64_t ll; typedef pair<int, int> pii;
#define pb emplace_back
#define AI(x) begin(x),end(x)
#define ff first
#define ss second
#ifdef OWO
#define debug(args...) LKJ("\033[0;32m[ " + string(#args) + " ]\033[0m", args)
template<class I> void LKJ(I&&x) { cerr << x << endl; }
template<class I, class...T> void LKJ(I&&x, T&&...t) { cerr << x << ", "; LKJ(t...); }
template<class I> void OI(I a, I b) { while (a < b) cerr << *a << " \n"[next(a) == b]; }
#else
#define debug(...) 0
#define OI(...) 0
#endif

signed main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

	ll N, M; cin >> N >> M;
	vector<ll> A(N), B(N);
	for (ll &i: A) cin >> i;
	for (ll &i: B) cin >> i;

	ll ans = 0;
	for (ll l = (1ll << 60); l > 0; l >>= 1) {
		ll threshold = ans + l;
		debug(threshold);
		ll empty = N * M;
		for (int i = 0; i < N and empty >= 0; ++i) {
			ll tmp = threshold;
			if (A[i] >= B[i]) {
				ll chooseA = (tmp + A[i] - 1) / A[i];
				chooseA = min(chooseA, M);
				tmp -= A[i] * chooseA;
				empty -= chooseA;
				//debug(i, chooseA);
			}
			if (tmp > 0) {
				ll chooseB = (tmp + B[i] - 1) / B[i];
				//debug(i, chooseB);
				empty -= chooseB;
			}
		}
		if (empty >= 0) ans = threshold;
	}
	cout << ans << '\n';

	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:14:20: warning: statement has no effect [-Wunused-value]
   14 | #define debug(...) 0
      |                    ^
Main.cpp:29:3: note: in expansion of macro 'debug'
   29 |   debug(threshold);
      |   ^~~~~
#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...