Submission #919175

#TimeUsernameProblemLanguageResultExecution timeMemory
919175boris_mihovKoala Game (APIO17_koala)C++17
19 / 100
12 ms852 KiB
#include "koala.h" #include <algorithm> #include <iostream> #include <numeric> #include <cassert> #include <vector> typedef long long llong; const int MAXN = 128; const int INF = 1e9; int n, w; int __b[MAXN]; int __r[MAXN]; std::vector <int> play(const std::vector <int> &b) { assert(b.size() == n); for (int i = 0 ; i < n ; ++i) { __b[i] = b[i]; } playRound(__b, __r); std::vector <int> r(n); for (int i = 0 ; i < n ; ++i) { r[i] = __r[i]; } return r; } int minValue(int N, int W) { n = N; w = W; std::vector <int> askFor(n, 0); askFor[0] = 1; std::vector <int> r = play(askFor); for (int i = 0 ; i < N ; ++i) { if (r[i] == 0) { return i; } } // TODO: Implement Subtask 1 solution here. // You may leave this function unmodified if you are not attempting this // subtask. return 0; } int maxValue(int N, int W) { n = N; w = W; int step = 1; std::vector <int> candidates(n); std::iota(candidates.begin(), candidates.end(), 0); while (candidates.size() > 1) { std::vector <int> b(n, 0); for (const int &pos : candidates) { b[pos] = w / candidates.size(); } // step = 2 * step; std::vector <int> r = play(b); std::vector <int> newCandidates; for (const int &pos : candidates) { if (r[pos] > b[pos]) { newCandidates.push_back(pos); } } candidates = newCandidates; } // TODO: Implement Subtask 2 solution here. // You may leave this function unmodified if you are not attempting this // subtask. return candidates[0]; } bool cmp(int x, int y) { int l = 0, rr = w / 2, mid; while (l - 1 < rr) { mid = (l + rr) / 2; std::vector <int> b(n, 0); b[x] = mid; b[y] = mid; std::vector <int> r = play(b); if (r[x] > b[x] && r[y] <= b[y]) return false; if (r[y] > b[y] && r[x] <= b[x]) return true; if (r[x] <= b[x]) l = mid; else rr = mid; } assert(false); } int greaterValue(int N, int W) { n = N; w = W; // n = N; w = W; // std::vector <int> toAsk(n, 0); // toAsk[0] = toAsk[1] = 1; // std::vector <int> r = play(toAsk); // if () // TODO: Implement Subtask 3 solution here. // You may leave this function unmodified if you are not attempting this // subtask. return cmp(0, 1); } void allValues(int N, int W, int *P) { n = N; w = W; 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. } }

Compilation message (stderr)

In file included from /usr/include/c++/10/cassert:44,
                 from koala.cpp:5:
koala.cpp: In function 'std::vector<int> play(const std::vector<int>&)':
koala.cpp:17:21: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   17 |     assert(b.size() == n);
      |            ~~~~~~~~~^~~~
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:57:9: warning: unused variable 'step' [-Wunused-variable]
   57 |     int step = 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...