Submission #264823

#TimeUsernameProblemLanguageResultExecution timeMemory
264823srvltKoala Game (APIO17_koala)C++14
4 / 100
6 ms384 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define all(x) begin(x), end(x) #define SZ(x) (int)(x).size() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int b[105], r[105]; int minValue(int N, int W) { // TODO: Implement Subtask 1 solution here. // You may leave this function unmodified if you are not attempting this // subtask. memset(& b, 0, sizeof(b)); memset(& r, 0, sizeof(r)); b[0] = 1; playRound(b, r); if (r[0] < 2) return 0; for (int i = 0; i < N; i++) if (r[i] == 0) return i; assert(false); } int maxValue(int N, int W) { // TODO: Implement Subtask 2 solution here. // You may leave this function unmodified if you are not attempting this // subtask. return 0; } int greaterValue(int N, int W) { // TODO: Implement Subtask 3 solution here. // You may leave this function unmodified if you are not attempting this // subtask. vector <int> suf, vec; for (int i = 0; i < N; i++) suf.pb(i); while (SZ(suf) > 2) { int k = min(N / SZ(suf), SZ(suf) - 1); memset(& b, 0, sizeof(b)); memset(& r, 0, sizeof(r)); for (int i : suf) b[i] = k; playRound(b, r); vec.clear(); for (int i = 0; i < N; i++) if (b[i] == k && r[i] > k) vec.pb(i); suf = vec; } assert(SZ(suf) <= 2); if (SZ(suf) == 2) { int l = 1, h = N / 2 + 1; vector <int> tmp; while (l < h - 1) { int mid = l + h >> 1; memset(& b, 0, sizeof(b)); memset(& r, 0, sizeof(r)); b[suf[0]] = b[suf[1]] = mid; playRound(b, r); tmp.clear(); if (r[suf[0]] > b[suf[0]]) tmp.pb(suf[0]); if (r[suf[1]] > b[suf[1]]) tmp.pb(suf[1]); if (SZ(tmp) > 0) l = mid; else h = mid; } memset(& b, 0, sizeof(b)); memset(& r, 0, sizeof(r)); b[suf[0]] = b[suf[1]] = l; playRound(b, r); tmp.clear(); if (r[suf[0]] > b[suf[0]]) tmp.pb(suf[0]); if (r[suf[1]] > b[suf[1]]) tmp.pb(suf[1]); suf = tmp; } assert(SZ(suf) == 1); return suf[0]; } void allValues(int N, int W, int *P) { 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)

koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:60:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   60 |    int mid = l + h >> 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...