Submission #568219

#TimeUsernameProblemLanguageResultExecution timeMemory
568219hollwo_pelwKoala Game (APIO17_koala)C++17
37 / 100
50 ms340 KiB
#include <bits/stdc++.h>
using namespace std;

#include "koala.h"

int R[105], B[105];

void __init__() { memset(R, 0, sizeof R); memset(B, 0, sizeof B); }

int minValue(int N, int W) {
    __init__();
    B[0] = 1;
    playRound(B, R);

    for (int i = 1; i < N; i++)
        if (!R[i]) return i;

    return 0;
}

int maxValue(int N, int W) {
    vector<int> res(N);
    iota(res.begin(), res.end(), 0);

    while ((int) res.size() > 1) {
        __init__();
        for (auto i : res)
            B[i] = W / res.size();
        playRound(B, R);

        int f = *max_element(R, R + N);
        
        res.clear();
        for (int i = 0; i < N; i++)
            if (R[i] == f) res.push_back(i);
    }

    return res[0];
}

int greaterValue(int N, int W) {
    int l = 0, r = 15;
    while (l <= r) {
        int mid = (l + r) >> 1;
        
        __init__();
        B[0] = B[1] = mid;
        playRound(B, R);

        int c0 = R[0] > B[0], c1 = R[1] > B[1];

        if (c0 ^ c1) {
            if (c0) return 0;
            if (c1) return 1;
        }

        if (c0) {
            l = mid + 1;
        } else {
            r = mid - 1;
        }
    }

    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 {
        // TODO: Implement Subtask 5 solution here.
        // You may leave this block unmodified if you are not attempting this
        // subtask.
    }
}
#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...