제출 #968987

#제출 시각아이디문제언어결과실행 시간메모리
968987kilkuwuKoala Game (APIO17_koala)C++17
47 / 100
44 ms596 KiB
#include "koala.h" #include <bits/stdc++.h> #ifdef LOCAL #include "template/debug.hpp" #else #define dbg(...) ; #define timer(...) ; #endif int minValue(int N, int W) { int B[N], R[N]; 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] <= B[i]) { return i; } } } int maxValue(int N, int W) { int B[N], R[N]; for (int i = 0; i < N; i++) { B[i] = 1; } playRound(B, R); int candidate[N]; for (int i = 0; i < N; i++) { if (R[i] > B[i]) { candidate[i] = 1; B[i] = 2; } else { candidate[i] = 0; B[i] = 0; } } playRound(B, R); for (int i = 0; i < N; i++) { if (R[i] > B[i]) { if (candidate[i]) { B[i] = 4; } else { B[i] = 0; } } else { candidate[i] = 0; B[i] = 0; } } playRound(B, R); for (int i = 0; i < N; i++) { if (R[i] > B[i]) { if (candidate[i]) { B[i] = 11; } else { B[i] = 0; } } else { candidate[i] = 0; B[i] = 0; } } playRound(B, R); for (int i = 0; i < N; i++) { if (R[i] > B[i] && candidate[i]) return i; } } int greaterValue(int N, int W) { int B[N], R[N]; for (int i = 0; i < N; i++) B[i] = 0; int mb = 5; B[0] = B[1] = mb; playRound(B, R); bool bought0 = R[0] > B[0]; bool bought1 = R[1] > B[1]; if (bought0 != bought1) return bought1; if (bought0) { mb = 8; } else { mb = 2; } B[0] = B[1] = mb; playRound(B, R); bought0 = R[0] > B[0]; bought1 = R[1] > B[1]; if (bought0 != bought1) return bought1; if (bought0) { mb = 3; } else { mb = 1; } B[0] = B[1] = mb; playRound(B, R); bought0 = R[0] > B[0]; bought1 = R[1] > B[1]; if (bought0 != bought1) return bought1; assert(false); } int B[100], R[100]; void allValues(int N, int W, int *P) { if (W == 2 * N) { std::vector<int> ord(N); std::iota(ord.begin(), ord.end(), 0); auto compare = [&](int i, int j) -> bool { B[i] = B[j] = W / 2; playRound(B, R); B[i] = B[j] = 0; return R[j] > B[j]; }; std::function<void(std::vector<int>&)> merge_sort = [&](std::vector<int>& v) -> void { if (v.size() == 1) return; int mid = v.size() / 2; std::vector<int> l(v.begin(), v.begin() + mid); std::vector<int> r(v.begin() + mid, v.end()); merge_sort(l); merge_sort(r); std::merge(l.begin(), l.end(), r.begin(), r.end(), v.begin(), compare); }; merge_sort(ord); for (int i = 0; i < N; i++) { P[ord[i]] = i + 1; } } else { // TODO: Implement Subtask 5 solution here. // You may leave this block unmodified if you are not attempting this // subtask. } }

컴파일 시 표준 에러 (stderr) 메시지

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:24:1: warning: control reaches end of non-void function [-Wreturn-type]
   24 | }
      | ^
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:73:1: warning: control reaches end of non-void function [-Wreturn-type]
   73 | }
      | ^
#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...