Submission #1279288

#TimeUsernameProblemLanguageResultExecution timeMemory
1279288sheercoldKoala Game (APIO17_koala)C++20
19 / 100
9 ms444 KiB
#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 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...