| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1342077 | ksujay2 | Lottery (JOI25_lottery) | C++20 | 5092 ms | 5056 KiB |
#include "lottery.h"
#include <bits/stdc++.h>
using namespace std;
int N;
const int MXN = 2e5;
int X[MXN], Y[MXN];
void init(int _N, int _Q, vector<int> _X, vector<int> _Y) {
N = _N;
for(int i = 0; i < N; i++) X[i] = _X[i];
for(int i = 0; i < N; i++) Y[i] = _Y[i];
}
bool check_price(int L, int R, int C) {
int lsm = 0, rsm = 0;
for(int i = L; i <= R; i++) {
if(X[i] + Y[i] < C) return false;
int x = min(X[i], C);
int y = min(Y[i], C);
lsm += C - 2 * y;
rsm += 2 * x - C;
}
return lsm <= 0 && 0 <= rsm;
}
int max_prize(int L, int R) {
int k = 0;
for(int j = 1 << 29; j > 0; j /= 2) {
if(check_price(L, R, k + j)) {
k += j;
}
}
return k;
}
int fakemain() {
int N, Q; cin >> N >> Q;
vector<int> X(N), Y(N);
for(int i = 0; i < N; i++) cin >> X[i];
for(int i = 0; i < N; i++) cin >> Y[i];
init(N, Q, X, Y);
for(int i = 0; i < Q; i++) {
int L, R; cin >> L >> R;
cout << max_prize(L, R) << '\n';
}
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
