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 "koala.h"
#include<bits/stdc++.h>
using namespace std;
int B[105], R[105];
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.
return 0;
}
int maxValue(int N, int W) {
vector<int> vec = {1, 2, 4, 11};
vector<int> good(N);
iota(good.begin(), good.end(), 0);
for(auto v: vec){
fill(B, B + N, 0);
for(auto id: good)B[id] = v;
playRound(B, R);
good.clear();
for(int i = 0; i < N; i++)if(R[i] > v)good.push_back(i);
}
return good.back();
}
int greaterValue(int N, int W) {
int l = 1, r = 8;
while (l < r) {
int mid = (l + r) >> 1;
B[0] = B[1] = mid;
playRound(B, R);
if (R[0] > mid and R[1] <= mid) return 0;
if (R[1] > mid and R[0] <= mid) return 1;
if (R[0] > mid && R[1] > mid) l = mid + 1;
else r = mid - 1;
}
B[0] = B[1] = l;
playRound(B, R);
if (R[0] > l and R[1] <= l) return 0;
if (R[1] > l and R[0] <= l) return 1;
assert(0);
return 0;
}
int n;
bool cmp_subtask_4(int a, int b){
fill(B, B + n, 0);
B[a] = B[b] = n;
playRound(B, R);
return R[a] < R[b];
}
void allValues(int N, int W, int *P) {
n = N;
if (W == 2 * N) {
vector<int> vec(N);
iota(vec.begin(), vec.end(), 0);
stable_sort(vec.begin(), vec.end(), cmp_subtask_4);
for (int i = 0; i < N; i++) P[vec[i]] = i + 1;
} 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... |