#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
int B[100], R[100];
bool mark[100];
int minValue(int N, int W){
for (int i = 0; i < N; i++)
B[i] = 0;
B[0] = 1;
playRound(B, R);
for (int i = 0; i < N; i++)
if (R[i] == 0)
return i;
return 0;
}
int maxValue(int N, int W){
int k = N;
for (int i = 0; i < N; i++)
mark[i] = 0;
while (k > 1){
int cost = min(13, W/k);
for (int i = 0; i < N; i++){
if (!mark[i])
B[i] = cost;
else
B[i] = 0;
}
playRound(B, R);
for (int i = 0; i < N; i++)
if (!mark[i] and R[i] <= B[i])
mark[i] = 1;
k = 0;
for (int i = 0; i < N; i++)
if (mark[i] == 0)
k ++;
}
for (int i = 0; i < N; i++)
if (!mark[i])
return i;
return 0;
}
int v = 0, u = 1;
int greaterValue(int N, int W){
int lo = 0, hi = 14;
int sum = 0;
while (hi - lo > 1){
int mid = (lo + hi) >> 1;
for (int i = 0; i < N; i++)
B[i] = W/N - 1;
B[v] = B[u] = mid * (W / N);
playRound(B, R);
bool fi = (R[v] > B[v]);
bool se = (R[u] > B[u]);
if (fi == se){
if (fi == 1)
lo = mid;
else
hi = mid;
}
else
return se;
}
return 0;
}
int GlobW, GlobN;
bool cmp(int fi, int se){
if (fi == se)
return false;
v = fi, u = se;
return greaterValue(100, GlobW);
}
int T[110];
void find(int l, int r, vector<int> a){
if (l+1 == r){
T[a[0]] = l;
return;
}
int lo = 0, hi = GlobW/(r-l) + 1;
while (hi - lo > 1){
int mid = (lo + hi) >> 1;
for (int i = 0; i < GlobN; i++)
B[i] = 0;
for (int i = 0; i < a.size(); i++)
B[a[i]] = mid;
playRound(B, R);
bool Good = 0, Bad = 0;
for (int i = 0; i < a.size(); i++){
if (R[a[i]] <= B[a[i]])
Good = 1;
else
Bad = 1;
}
if (Good and Bad){
vector<int> b, c;
for (int i = 0; i < a.size(); i++){
if (R[a[i]] <= B[a[i]])
b.push_back(a[i]);
else
c.push_back(a[i]);
}
int sz = b.size();
find(l, l+sz, b);
find(l+sz, r, c);
return;
}
if (Good)
hi = mid;
else
lo = mid;
}
}
void allValues(int N, int W, int *P) {
GlobW = W, GlobN = N;
vector<int> a;
for (int i = 0; i < N; i++)
a.push_back(i);
find(1, N+1, a);
for (int i = 0; i < N; i++)
P[i] = T[i];
return;
}
Compilation message
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:50:6: warning: unused variable 'sum' [-Wunused-variable]
50 | int sum = 0;
| ^~~
koala.cpp: In function 'void find(int, int, std::vector<int>)':
koala.cpp:92:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
92 | for (int i = 0; i < a.size(); i++)
| ~~^~~~~~~~~~
koala.cpp:96:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
96 | for (int i = 0; i < a.size(); i++){
| ~~^~~~~~~~~~
koala.cpp:104:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
104 | for (int i = 0; i < a.size(); i++){
| ~~^~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
7 ms |
384 KB |
Output is correct |
2 |
Correct |
6 ms |
384 KB |
Output is correct |
3 |
Correct |
6 ms |
384 KB |
Output is correct |
4 |
Correct |
6 ms |
384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
19 ms |
384 KB |
Output is correct |
2 |
Correct |
19 ms |
384 KB |
Output is correct |
3 |
Correct |
19 ms |
384 KB |
Output is correct |
4 |
Correct |
20 ms |
504 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
77 ms |
384 KB |
Output is correct |
2 |
Correct |
75 ms |
384 KB |
Output is correct |
3 |
Correct |
67 ms |
384 KB |
Output is correct |
4 |
Correct |
68 ms |
384 KB |
Output is correct |
5 |
Correct |
69 ms |
384 KB |
Output is correct |
6 |
Correct |
65 ms |
384 KB |
Output is correct |
7 |
Correct |
66 ms |
384 KB |
Output is correct |
8 |
Correct |
66 ms |
384 KB |
Output is correct |
9 |
Correct |
65 ms |
384 KB |
Output is correct |
10 |
Correct |
65 ms |
384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
18 ms |
384 KB |
Output is correct |
2 |
Correct |
16 ms |
384 KB |
Output is correct |
3 |
Correct |
18 ms |
512 KB |
Output is correct |
4 |
Correct |
17 ms |
384 KB |
Output is correct |
5 |
Correct |
17 ms |
384 KB |
Output is correct |
6 |
Correct |
17 ms |
384 KB |
Output is correct |
7 |
Correct |
16 ms |
384 KB |
Output is correct |
8 |
Correct |
16 ms |
384 KB |
Output is correct |
9 |
Correct |
17 ms |
384 KB |
Output is correct |
10 |
Correct |
18 ms |
384 KB |
Output is correct |
11 |
Correct |
16 ms |
384 KB |
Output is correct |
12 |
Correct |
17 ms |
512 KB |
Output is correct |
13 |
Correct |
17 ms |
384 KB |
Output is correct |
14 |
Correct |
16 ms |
384 KB |
Output is correct |
15 |
Correct |
16 ms |
384 KB |
Output is correct |
16 |
Correct |
16 ms |
384 KB |
Output is correct |
17 |
Correct |
16 ms |
384 KB |
Output is correct |
18 |
Correct |
16 ms |
384 KB |
Output is correct |
19 |
Correct |
16 ms |
384 KB |
Output is correct |
20 |
Correct |
18 ms |
384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
2 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
3 |
Partially correct |
10 ms |
384 KB |
Output is partially correct |
4 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
5 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
6 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
7 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
8 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
9 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
10 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
11 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
12 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
13 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
14 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
15 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
16 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
17 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
18 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
19 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
20 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
21 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
22 |
Partially correct |
12 ms |
384 KB |
Output is partially correct |
23 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
24 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
25 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
26 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
27 |
Partially correct |
10 ms |
384 KB |
Output is partially correct |
28 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
29 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
30 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
31 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
32 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
33 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
34 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
35 |
Partially correct |
10 ms |
384 KB |
Output is partially correct |
36 |
Partially correct |
9 ms |
512 KB |
Output is partially correct |
37 |
Partially correct |
9 ms |
384 KB |
Output is partially correct |
38 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
39 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |
40 |
Partially correct |
8 ms |
384 KB |
Output is partially correct |