Submission #885658

#TimeUsernameProblemLanguageResultExecution timeMemory
885658PikachuKoala Game (APIO17_koala)C++17
19 / 100
11 ms416 KiB
#include <bits/stdc++.h> #include "koala.h" using namespace std; int minValue(int N, int W) { int B[100], R[100]; B[0] = 1; playRound(B, R); if (R[0] <= 1) return 0; for (int i = 1; i < 100; i++) { if (!R[i]) return i; } return 0; } int maxValue(int N, int W) { int B[100], R[100]; bool done[100]; memset(B, 0, sizeof B); memset(R, 0, sizeof R); memset(done, 0, sizeof done); int rem = N; int maxx = 0; while ((maxx + 1) * (maxx + 2) / 2 < N) maxx++; while (rem > 1) { for (int i = 0; i < N; i++) { if (!done[i]) B[i] = std::min(W / rem, maxx); else B[i] = 0; } playRound(B, R); for (int i = 0; i < N; i++) { if (!done[i] && R[i] <= B[i]) { done[i] = true; rem--; } } } for (int i = 0; i < N; i++) { if (!done[i]) return i; } return 0; } int greaterValue(int N, int W) { int B[100], R[100]; int l = 1, r = 7; while (l <= r) { int mid = (l + r) >> 1; memset(B, 0, sizeof B); B[0] = B[1] = mid; playRound(B, R); if (R[0] != R[1]) { if (R[1] > B[1] && R[0] <= B[0]) { return 0; } if (R[1] <= B[1] && R[0] > B[0]) { return 1; } } if (R[0] > B[0]) { l = mid + 1; } else r = mid - 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...