제출 #111490

#제출 시각아이디문제언어결과실행 시간메모리
111490diamond_duke코알라 (APIO17_koala)C++11
19 / 100
24 ms384 KiB
#include "koala.h" #include <algorithm> #include <vector> 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) { if (m == n * 2) { std::vector<int> seq(n); for (int i = 0; i < n; i++) seq[i] = i; std::stable_sort(seq.begin(), seq.end(), [&] (int x, int y) { std::vector<int> vec(n, 0); vec[x] = vec[y] = n; return query(vec)[y] > n; }); for (int i = 0; i < n; i++) arr[seq[i]] = i + 1; return; } }
#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...