# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
557659 | 2022-05-05T17:52:05 Z | nutella | 코알라 (APIO17_koala) | C++17 | 51 ms | 336 KB |
#include "koala.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxN = 100; int B[maxN], R[maxN]; void cl() { memset(B, 0, sizeof(B)); memset(R, 0, sizeof(R)); } int minValue(int N, int W) { // TODO: Implement Subtask 1 solution here. // You may leave this function unmodified if you are not attempting this // subtask. cl(); B[0] = 1; playRound(B, R); if (R[0]) { return int(min_element(R, R + N) - R); } else { return 0; } } int maxValue(int N, int W) { // return i such as P[i] = n vector<int> left(N); iota(begin(left), end(left), 0); while (size(left) > 1) { int x = W / (int) size(left); cl(); for (int i: left) B[i] = x; playRound(B, R); vector<int> tmp; for (int i: left) if (B[i] < R[i]) tmp.push_back(i); swap(tmp, left); } assert(size(left) == 1); return left[0]; } int greaterValue(int N, int W) { // compare P[0] and P[1] int l = 0, r = W / 8; while (l + 1 < r) { int m = (l + r) >> 1; cl(); B[0] = B[1] = m; playRound(B, R); bool took1 = R[0] > B[0]; bool took2 = R[1] > B[1]; if (took1 && took2) l = m; else if (!took1 && !took2) r = m; else if (took1) return 0; else return 1; } return 0; } void allValues(int N, int W, int *P) { if (W == N) { vector<bool> used(N); for (int v = N; v > 0; --v) { vector<int> left; for (int i = 0; i < N; ++i) { if (!used[i]) left.push_back(i); } while (size(left) > 1) { int x = W / (int) size(left); int l = 0, r = x + 1; while (l + 1 < r) { int mid = (l + r) >> 1; cl(); for (int i: left) B[i] = mid; playRound(B, R); vector<int> tmp; for (int i: left) if (B[i] < R[i]) tmp.push_back(i); if (!tmp.empty()) l = mid; else r = mid; } int mid = l; cl(); for (int i: left) B[i] = mid; playRound(B, R); vector<int> tmp; for (int i: left) if (B[i] < R[i]) tmp.push_back(i); swap(tmp, left); } if (size(left) != 1) { cout << v << endl; } assert(size(left) == 1); P[left[0]] = v; used[left[0]] = true; } } else { vector<bool> used(N); for (int v = N; v > 0; --v) { vector<int> left; for (int i = 0; i < N; ++i) { if (!used[i]) left.push_back(i); } while (size(left) > 1) { int x = W / (int) size(left); cl(); for (int i: left) B[i] = x; playRound(B, R); vector<int> tmp; for (int i: left) if (B[i] < R[i]) tmp.push_back(i); swap(tmp, left); } assert(size(left) == 1); P[left[0]] = v; used[left[0]] = true; } } }
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 208 KB | Output is correct |
2 | Correct | 4 ms | 208 KB | Output is correct |
3 | Correct | 4 ms | 208 KB | Output is correct |
4 | Correct | 4 ms | 208 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 12 ms | 208 KB | Output is correct |
2 | Correct | 12 ms | 324 KB | Output is correct |
3 | Correct | 12 ms | 208 KB | Output is correct |
4 | Correct | 11 ms | 208 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 47 ms | 332 KB | Output is correct |
2 | Correct | 51 ms | 332 KB | Output is correct |
3 | Correct | 47 ms | 328 KB | Output is correct |
4 | Correct | 47 ms | 336 KB | Output is correct |
5 | Correct | 43 ms | 328 KB | Output is correct |
6 | Correct | 44 ms | 336 KB | Output is correct |
7 | Correct | 44 ms | 328 KB | Output is correct |
8 | Correct | 43 ms | 324 KB | Output is correct |
9 | Correct | 44 ms | 336 KB | Output is correct |
10 | Correct | 43 ms | 336 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 31 ms | 332 KB | Output is correct |
2 | Correct | 33 ms | 208 KB | Output is correct |
3 | Correct | 32 ms | 208 KB | Output is correct |
4 | Correct | 31 ms | 208 KB | Output is correct |
5 | Correct | 32 ms | 296 KB | Output is correct |
6 | Correct | 34 ms | 208 KB | Output is correct |
7 | Correct | 31 ms | 208 KB | Output is correct |
8 | Correct | 31 ms | 304 KB | Output is correct |
9 | Correct | 32 ms | 208 KB | Output is correct |
10 | Correct | 32 ms | 316 KB | Output is correct |
11 | Correct | 34 ms | 320 KB | Output is correct |
12 | Correct | 29 ms | 208 KB | Output is correct |
13 | Correct | 31 ms | 316 KB | Output is correct |
14 | Correct | 34 ms | 316 KB | Output is correct |
15 | Correct | 33 ms | 296 KB | Output is correct |
16 | Correct | 31 ms | 208 KB | Output is correct |
17 | Correct | 32 ms | 208 KB | Output is correct |
18 | Correct | 31 ms | 208 KB | Output is correct |
19 | Correct | 33 ms | 208 KB | Output is correct |
20 | Correct | 33 ms | 316 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 31 ms | 296 KB | Output is partially correct |
2 | Partially correct | 32 ms | 208 KB | Output is partially correct |
3 | Partially correct | 34 ms | 292 KB | Output is partially correct |
4 | Partially correct | 33 ms | 208 KB | Output is partially correct |
5 | Partially correct | 31 ms | 208 KB | Output is partially correct |
6 | Partially correct | 31 ms | 296 KB | Output is partially correct |
7 | Partially correct | 31 ms | 292 KB | Output is partially correct |
8 | Partially correct | 30 ms | 316 KB | Output is partially correct |
9 | Partially correct | 30 ms | 208 KB | Output is partially correct |
10 | Partially correct | 30 ms | 320 KB | Output is partially correct |
11 | Partially correct | 30 ms | 208 KB | Output is partially correct |
12 | Partially correct | 31 ms | 292 KB | Output is partially correct |
13 | Partially correct | 31 ms | 316 KB | Output is partially correct |
14 | Partially correct | 31 ms | 316 KB | Output is partially correct |
15 | Partially correct | 32 ms | 308 KB | Output is partially correct |
16 | Partially correct | 30 ms | 208 KB | Output is partially correct |
17 | Partially correct | 31 ms | 208 KB | Output is partially correct |
18 | Partially correct | 32 ms | 300 KB | Output is partially correct |
19 | Partially correct | 34 ms | 208 KB | Output is partially correct |
20 | Partially correct | 30 ms | 208 KB | Output is partially correct |
21 | Partially correct | 30 ms | 208 KB | Output is partially correct |
22 | Partially correct | 31 ms | 208 KB | Output is partially correct |
23 | Partially correct | 31 ms | 208 KB | Output is partially correct |
24 | Partially correct | 32 ms | 208 KB | Output is partially correct |
25 | Partially correct | 30 ms | 208 KB | Output is partially correct |
26 | Partially correct | 31 ms | 300 KB | Output is partially correct |
27 | Partially correct | 32 ms | 208 KB | Output is partially correct |
28 | Partially correct | 33 ms | 296 KB | Output is partially correct |
29 | Partially correct | 30 ms | 208 KB | Output is partially correct |
30 | Partially correct | 31 ms | 292 KB | Output is partially correct |
31 | Partially correct | 33 ms | 300 KB | Output is partially correct |
32 | Partially correct | 30 ms | 296 KB | Output is partially correct |
33 | Partially correct | 31 ms | 300 KB | Output is partially correct |
34 | Partially correct | 30 ms | 208 KB | Output is partially correct |
35 | Partially correct | 32 ms | 208 KB | Output is partially correct |
36 | Partially correct | 30 ms | 208 KB | Output is partially correct |
37 | Partially correct | 33 ms | 208 KB | Output is partially correct |
38 | Partially correct | 31 ms | 308 KB | Output is partially correct |
39 | Partially correct | 31 ms | 296 KB | Output is partially correct |
40 | Partially correct | 29 ms | 208 KB | Output is partially correct |