Submission #1209028

#TimeUsernameProblemLanguageResultExecution timeMemory
1209028jasonicKoala Game (APIO17_koala)C++20
37 / 100
35 ms464 KiB
#include "koala.h"
#include <bits/stdc++.h>

using namespace std;

const int MXN = 100;
int toSend[MXN];
int response[MXN];

int minValue(int n, int w) {

    toSend[0] = 1;

    playRound(toSend, response);

    for(int i = 1; i < MXN; i++) {
        if(response[i] == 0) return i;
    }
    
    return 0;
}

int maxValue(int n, int w) {
    vector<int> candidates;
    for(int i = 0; i < MXN; i++) candidates.push_back(i);
    
    while(candidates.size() != 1) {
        int cnt = w / candidates.size();
        fill(toSend, toSend + MXN, 0);
        for(auto i : candidates) toSend[i] = cnt;
        playRound(toSend, response);
        candidates.clear();
        for(int i = 0; i < MXN; i++) if(response[i] > cnt) candidates.push_back(i);
    }

    return candidates[0];
}

int greaterValue(int n, int w) {
    int l = 0;
    int r = 10;

    while (l + 1 < r) {
        int m = (l+r)/2;
        toSend[0] = m;
        toSend[1] = m;
        playRound(toSend, response);

        if(response[0] <= m && response[1] <= m) {
            r = m;
        } else if(response[0] > m && response[1] > m) {
            l = m;
        } else {
            return response[0] < response[1];
        }
    }

    toSend[0] = r;
    toSend[1] = r;
    playRound(toSend, response);

    return response[0] < response[1];
}

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...