This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "koala.h"
//~ #include "grader.cpp"
using namespace std;
int n;
bool cmp(int i, int j){
int B[n], R[n];
for(int i = 0 ; i < n ; i++){
B[i] = R[i] = 0;
}
int l = 1, r = 9;
while(l <= r){
int mid = (l + r) / 2;
B[i] = B[j] = mid;
playRound(B, R);
if((R[i] > B[i]) == (R[j] > B[j])){
if(R[i] > B[j]) l = mid + 1;
else r = mid - 1;
}
else return R[j] > B[j];
}
assert(false);
}
int minValue(int N, int W) {
n = N;
int B[n], R[n];
for(int i = 0 ; i < n ; i++){
B[i] = R[i] = 0;
}
B[0]++;
playRound(B, R);
for(int i = 0 ; i < n ; i++){
if(B[i] >= R[i]) return i;
}
return 0;
}
int maxValue(int N, int W) {
// TODO: Implement Subtask 2 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
return 0;
}
int greaterValue(int N, int W) {
n = N;
if(cmp(0, 1)) return 1;
return 0;
}
void allValues(int N, int W, int *P) {
n = N;
if (W == 2*N) {
// TODO: Implement Subtask 4 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
} else {
vector <int> all;
for(int i = 0 ; i < n ; i++){
all.push_back(i);
}
stable_sort(all.begin(), all.end(), cmp);
for(int i = 0 ; i < n ; i++){
P[all[i]] = i + 1;
}
}
}
# | 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... |