Submission #111469

#TimeUsernameProblemLanguageResultExecution timeMemory
111469diamond_dukeKoala Game (APIO17_koala)C++11
29 / 100
45 ms416 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 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); int cnt = n; 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 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; std::vector<int> in(n); for (int t = n; t; t--) { for (int i = 0; i < n; i++) in[i] = !arr[i]; int cnt = t; 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]) arr[i] = 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...