Submission #175889

#TimeUsernameProblemLanguageResultExecution timeMemory
175889SaboonKoala Game (APIO17_koala)C++14
37 / 100
56 ms512 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; int B[100], R[100]; bool mark[100]; int minValue(int N, int W){ for (int i = 0; i < N; i++) B[i] = 0; B[0] = 1; playRound(B, R); for (int i = 0; i < N; i++) if (R[i] == 0) return i; return 0; } int maxValue(int N, int W) { int k = N; for (int i = 0; i < N; i++) mark[i] = 0; while (k > 1){ int cost = min(13, W / k); for (int i = 0; i < N; i++){ if (!mark[i]) B[i] = cost; else B[i] = 0; } playRound(B, R); for (int i = 0; i < N; i++) if (!mark[i] and R[i] <= B[i]) mark[i] = 1; k = 0; for (int i = 0; i < N; i++) if (mark[i] == 0) k ++; } for (int i = 0; i < N; i++) if (!mark[i]) return i; return 0; } int v = 0, u = 1; int greaterValue(int N, int W){ int lo = 0, hi = 14; while (hi - lo > 1){ int mid = (lo + hi) >> 1; for (int i = 0; i < N; i++) B[i] = 0; B[v] = B[u] = mid; playRound(B, R); bool fi = (R[v] > B[v]); bool se = (R[u] > B[u]); if (fi == se){ if (fi == 1) lo = mid; else hi = mid; } else return se; } return 0; } int GlobN; bool cmp(int v, int u){ if (v == u) return false; int lo = 0, hi = 14; while (hi - lo > 1){ int mid = (lo + hi) >> 1; for (int i = 0; i < GlobN; i++) B[i] = 1; B[v] = B[u] = 2 * mid - 1; playRound(B, R); bool fi = (R[v] > B[v]); bool se = (R[u] > B[u]); if (fi == se){ if (fi == 1) lo = mid; else hi = mid; } else return se; } return 0; } int T[100]; void allValues(int N, int W, int *P) { if (W == 2*N) { GlobN = N; for (int i = 0; i < N; i++) T[i] = i; sort(T, T + N, cmp); for (int i = 0; i < N; i++) P[T[i]] = i + 1; } else { for (int i = 0; i < N; i++) T[i] = i; sort(T, T + N, cmp); for (int i = 0; i < N; i++) P[T[i]] = i + 1; } }
#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...