Submission #111470

#TimeUsernameProblemLanguageResultExecution timeMemory
111470diamond_dukeKoala Game (APIO17_koala)C++11
29 / 100
47 ms512 KiB
#include "koala.h" #include <vector> #include <cstdio> std::vector<bool> query(const std::vector<int> &vec) { static int B[105], R[105]; int n = vec.size(); for (int i = 0; i < n; i++) B[i] = vec[i]; playRound(B, R); std::vector<bool> res(n); for (int i = 0; i < n; i++) res[i] = R[i] > B[i]; return res; } int get_max(int n, int m, std::vector<bool> &in) { int cnt = 0; for (int i = 0; i < n; i++) cnt += in[i]; while (cnt > 1) { int w = m / cnt; std::vector<int> vec(n); for (int i = 0; i < n; i++) vec[i] = in[i] ? w : 0; auto res = query(vec); cnt = 0; for (int i = 0; i < n; i++) { in[i] = in[i] & res[i]; cnt += in[i]; } } for (int i = 0; i < n; i++) { if (in[i]) return i; } return -1; } int minValue(int n, int m) { std::vector<int> vec(n); vec[0] = 1; auto res = query(vec); for (int i = 0; i < n; i++) { if (!res[i]) return i; } return -1; } int maxValue(int n, int m) { std::vector<bool> in(n, true); return get_max(n, m, in); } int greaterValue(int n, int m) { return 0; } void allValues(int n, int m, int *arr) { for (int i = 0; i < n; i++) arr[i] = 0; for (int t = n; t; t--) { std::vector<bool> in(n); for (int i = 0; i < n; i++) in[i] = !arr[i]; arr[get_max(n, m, in)] = t; } }
#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...