Submission #557623

#TimeUsernameProblemLanguageResultExecution timeMemory
557623nutellaKoala Game (APIO17_koala)C++17
30 / 100
110 ms436 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxN = 100; int B[maxN], R[maxN]; void cl() { memset(B, 0, sizeof(B)); memset(R, 0, sizeof(R)); } 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. cl(); B[0] = 1; playRound(B, R); if (R[0]) { return int(min_element(R, R + N) - R); } else { return 0; } } int maxValue(int N, int W) { // return i such as P[i] = n vector<int> left(N); iota(begin(left), end(left), 0); while (size(left) > 1) { int x = W / (int) size(left); cl(); for (int i : left) B[i] = x; playRound(B, R); vector<int> tmp; for (int i : left) if (B[i] < R[i]) tmp.push_back(i); swap(tmp, left); } assert(size(left) == 1); return left[0]; } int greaterValue(int N, int W) { // compare P[0] and P[1] int l = 0, r = W / 2; while (l + 1 < r) { int m = (l + r) >> 1; cl(); B[0] = B[1] = m; playRound(B, R); bool took1 = R[0] > B[0]; bool took2 = R[1] > B[1]; if (took1 && took2) l = m; else if (!took1 && !took2) r = m; else if (took1) return 0; else return 1; } 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...