#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
int B[105], R[105];
int minValue(int N, int W) {
for(int i = 0; i < N; i++) B[i] = 1;
playRound(B, R);
for(int i = 0; i < N; i++) B[i] = 0;
for(int i = 0; i < N; i++){
if(R[i] > 1){
B[i] = 1;
break;
}
}
playRound(B, R);
for(int i = 0; i < N; i++){
if(R[i] <= B[i]) return i;
}
assert(0);
}
int maxValue(int N, int W) {
bool rem[105];
for(int i = 0; i < N; i++) rem[i] = true;
auto recalc = [&](){
int sum = 0;
for(int i = 0; i < N; i++) if(rem[i]) sum++;
for(int i = 0; i < N; i++){
if(rem[i]) B[i] = W / sum;
else B[i] = 0;
}
};
for(int t = 0; t < 4; t++){
recalc();
playRound(B, R);
for(int i = 0; i < N; i++){
if(R[i] <= B[i]) rem[i] = false;
}
}
for(int i = 0; i < N; i++){
if(rem[i]) return i;
}
assert(0);
}
bool comp(int x, int y){
vector<int> T = {1, 2, 3, 5, 8};
int l = 0, r = 4;
while(l <= r){
int mid = (l + r) / 2;
for(int i = 0; i < 100; i++) B[i] = 0;
B[x] = B[y] = T[mid];
playRound(B, R);
if(R[x] <= B[x] && R[y] <= B[y]) r = mid - 1;
else if(R[x] > B[x] && R[y] > B[y]) l = mid + 1;
else{
return R[x] <= B[x];
}
}
assert(0);
return 0;
}
bool comp2(int x, int y){
for(int i = 0; i < 100; i++) B[i] = 0;
B[x] = B[y] = 100;
playRound(B, R);
return R[x] <= B[x];
}
int greaterValue(int N, int W) {
if(comp(0, 1)) return 1;
else return 0;
}
vector<int> mergesort(int l, int r, const function<bool(int x, int y)>& cmp){
if(l == r) return {l};
vector<int> L = mergesort(l, (l + r) / 2, cmp), R = mergesort((l + r) / 2 + 1, r, cmp);
vector<int> ret;
int a = 0, b = 0;
while(a < L.size() || b < R.size()){
if(b == R.size() || (a != L.size() && cmp(L[a], R[b]))) ret.push_back(L[a++]);
else ret.push_back(R[b++]);
}
return ret;
}
void allValues(int N, int W, int *P) {
vector<int> ptr(N);
for(int i = 0; i < N; i++) ptr[i] = i;
if (W == 2*N) {
ptr = mergesort(0, N - 1, comp2);
}
else {
ptr = mergesort(0, N - 1, comp);
}
for(int i = 0; i < N; i++){
P[ptr[i]] = i + 1;
}
}
Compilation message
koala.cpp: In function 'std::vector<int> mergesort(int, int, const std::function<bool(int, int)>&)':
koala.cpp:98:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(a < L.size() || b < R.size()){
~~^~~~~~~~~~
koala.cpp:98:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(a < L.size() || b < R.size()){
~~^~~~~~~~~~
koala.cpp:99:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(b == R.size() || (a != L.size() && cmp(L[a], R[b]))) ret.push_back(L[a++]);
~~^~~~~~~~~~~
koala.cpp:99:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(b == R.size() || (a != L.size() && cmp(L[a], R[b]))) ret.push_back(L[a++]);
~~^~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
384 KB |
Output is correct |
2 |
Correct |
16 ms |
384 KB |
Output is correct |
3 |
Correct |
13 ms |
384 KB |
Output is correct |
4 |
Correct |
14 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
22 ms |
384 KB |
Output is correct |
2 |
Correct |
22 ms |
392 KB |
Output is correct |
3 |
Correct |
22 ms |
384 KB |
Output is correct |
4 |
Correct |
21 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
117 ms |
384 KB |
Output is correct |
2 |
Correct |
111 ms |
384 KB |
Output is correct |
3 |
Correct |
104 ms |
512 KB |
Output is correct |
4 |
Correct |
107 ms |
384 KB |
Output is correct |
5 |
Correct |
105 ms |
384 KB |
Output is correct |
6 |
Correct |
106 ms |
412 KB |
Output is correct |
7 |
Correct |
111 ms |
404 KB |
Output is correct |
8 |
Correct |
108 ms |
384 KB |
Output is correct |
9 |
Correct |
106 ms |
412 KB |
Output is correct |
10 |
Correct |
104 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
39 ms |
376 KB |
Output is correct |
2 |
Correct |
52 ms |
384 KB |
Output is correct |
3 |
Correct |
49 ms |
384 KB |
Output is correct |
4 |
Correct |
47 ms |
384 KB |
Output is correct |
5 |
Correct |
46 ms |
384 KB |
Output is correct |
6 |
Correct |
48 ms |
384 KB |
Output is correct |
7 |
Correct |
49 ms |
384 KB |
Output is correct |
8 |
Correct |
48 ms |
384 KB |
Output is correct |
9 |
Correct |
46 ms |
388 KB |
Output is correct |
10 |
Correct |
46 ms |
384 KB |
Output is correct |
11 |
Correct |
47 ms |
384 KB |
Output is correct |
12 |
Correct |
29 ms |
384 KB |
Output is correct |
13 |
Correct |
54 ms |
384 KB |
Output is correct |
14 |
Correct |
44 ms |
384 KB |
Output is correct |
15 |
Correct |
43 ms |
384 KB |
Output is correct |
16 |
Correct |
43 ms |
384 KB |
Output is correct |
17 |
Correct |
42 ms |
384 KB |
Output is correct |
18 |
Correct |
44 ms |
384 KB |
Output is correct |
19 |
Correct |
46 ms |
384 KB |
Output is correct |
20 |
Correct |
44 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
37 ms |
424 KB |
Output is partially correct |
2 |
Partially correct |
55 ms |
384 KB |
Output is partially correct |
3 |
Partially correct |
55 ms |
384 KB |
Output is partially correct |
4 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
5 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
6 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
7 |
Partially correct |
57 ms |
384 KB |
Output is partially correct |
8 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
9 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
10 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
11 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
12 |
Partially correct |
31 ms |
384 KB |
Output is partially correct |
13 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
14 |
Partially correct |
51 ms |
384 KB |
Output is partially correct |
15 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
16 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
17 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
18 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
19 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
20 |
Partially correct |
55 ms |
508 KB |
Output is partially correct |
21 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
22 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
23 |
Partially correct |
47 ms |
384 KB |
Output is partially correct |
24 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
25 |
Partially correct |
51 ms |
384 KB |
Output is partially correct |
26 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
27 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
28 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
29 |
Partially correct |
54 ms |
384 KB |
Output is partially correct |
30 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
31 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
32 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
33 |
Partially correct |
53 ms |
384 KB |
Output is partially correct |
34 |
Partially correct |
47 ms |
380 KB |
Output is partially correct |
35 |
Partially correct |
52 ms |
384 KB |
Output is partially correct |
36 |
Partially correct |
50 ms |
376 KB |
Output is partially correct |
37 |
Partially correct |
47 ms |
380 KB |
Output is partially correct |
38 |
Partially correct |
48 ms |
384 KB |
Output is partially correct |
39 |
Partially correct |
47 ms |
384 KB |
Output is partially correct |
40 |
Partially correct |
49 ms |
384 KB |
Output is partially correct |