#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
int minValue(int N, int W) {
assert(N == W);
int input[100];
int output[100];
fill(input, input + 100, 0);
input[0] = 1;
playRound(input, output);
for (int i = 0; i < N; i++) {
if (output[i] == 0) {
return i;
}
}
return 0;
}
int maxValue(int N, int W) {
assert(N == W);
int input[100];
int output[100];
vector<int> big(N);
iota(big.begin(), big.end(), 0);
while (big.size() > 1) {
fill(input, input + 100, 0);
int can_add = W / big.size();
can_add = min(can_add, 13);
for (int ind : big) {
input[ind] = can_add;
}
playRound(input, output);
vector<int> nbig;
for (int ind : big) {
if (output[ind] > input[ind]) {
nbig.push_back(ind);
}
}
swap(big, nbig);
}
assert(big.size() == 1);
return big[0];
}
int greaterValue(int N, int W) {
assert(N == W);
assert(W >= 3);
int input[100];
int output[100];
auto check_result = [&]() -> int {
array<int, 2> big;
big[0] = input[0] < output[0];
big[1] = input[1] < output[1];
if (big[0] ^ big[1]) {
return big[0] == 0;
} else {
return big[0] + 2;
}
};
input[0] = input[1] = 3;
playRound(input, output);
int res = check_result();
if (res < 2) {
return res;
}
res -= 2;
if (res == 0) {
// input[0] = input[1] = 1;
// playRound(input, output);
// res = check_result();
// if (res < 2) {
// return res;
// }
// res -= 2;
// assert(res == 0);
input[0] = input[1] = 1;
playRound(input, output);
res = check_result();
assert(res < 2);
return res;
} else {
input[0] = input[1] = 5;
playRound(input, output);
res = check_result();
if (res < 2) {
return res;
}
res -= 2;
assert(res == 1);
input[0] = input[1] = 8;
playRound(input, output);
res = check_result();
assert(res < 2);
return res;
}
return 0;
}
void allValues(int N, int W, int *P) {
if (W == 2*N) {
// TODO: Implement Subtask 4 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
} else {
// TODO: Implement Subtask 5 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
}
}
# | 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... |