# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
953107 | 2024-03-25T14:02:43 Z | Itamar | Koala Game (APIO17_koala) | C++14 | 0 ms | 0 KB |
#include "koala.h" using namespace std; #include <bitset> #include <vector> bitset<100> buy(int* a, int* b) { playRound(a, b); bitset<100> ans; for (int i = 0; i < 100; i++)if (b[i] > a[i])ans[i] = 1; return ans; } int maxValue(int N, int W,bitset<100> op) { bitset<100> can = op; while (can.count() > 1) { int a[100], b[100]; for (int i = 0; i < 100; i++)if (can[i])a[i] = op.count() / can.count(); else a[i] = 0; can = can&buy(a, b); } for (int i = 0; i < N; i++)if (can[i])return i; } 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. 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. return 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 { bitset<100> op; for (int i = 0; i < 100; i++)op[i] = 1; for (int i = N; i > 0; i--) { int in = maxValue(100, 100, op); P[in] = i; op[in] = 0; } } }