Submission #1369694

#TimeUsernameProblemLanguageResultExecution timeMemory
1369694gelastropodBitaro the Brave 2 (JOI25_ho_t2)C++20
100 / 100
235 ms16600 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
	int N, x, ans = INT_MAX; cin >> N;
	vector<int> A, B = { 0 };
	for (int i = 0; i < N; i++) {
		cin >> x;
		A.push_back(x);
	}
	for (int i = 0; i < N; i++) {
		cin >> x;
		B.push_back(x);
	}
	for (int i = 1; i <= N; i++) B[i] += B[i - 1];
	priority_queue<pair<int, int>> pq;
	for (int i = 0; i < N; i++) pq.push({ A[i] - B[i], i });
	for (int i = 0; i < N; i++) {
		while (pq.top().second >= 0 && pq.top().second < i) {
			auto res = pq.top();
			pq.pop();
			pq.push({ res.first - B.back(), -1 });
		}
		ans = min(ans, pq.top().first + B[i]);
	}
	cout << ans << '\n';
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...