Submission #1179806

#TimeUsernameProblemLanguageResultExecution timeMemory
1179806NValchanovKoala Game (APIO17_koala)C++20
30 / 100
52 ms460 KiB
#include "koala.h"
#include <bits/stdc++.h>

using namespace std;

int minValue(int n, int w) 
{
    int b[n];
    int r[n];
    
    for(int i = 1; i < n; i++)
    {
        b[i] = 0;
    }
    b[0] = 1;

    playRound(b, r);

    if(r[0] <= 1)
        return 0;

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

    return 0;
}

int maxValue(int n, int w) 
{
    int b[n];
    int r[n];
    vector < int > maxset;

    for(int i = 0; i < n; i++)
    {
        maxset.push_back(i);
    }

    while(maxset.size() > 1)
    {
        int sz = maxset.size();
        int by = w / sz;

        for(int i = 0; i < n; i++)
        {
            b[i] = 0;
        }
        for(int idx : maxset)
        {
            b[idx] = by;
        }

        playRound(b, r);

        maxset.clear();

        for(int i = 0; i < n; i++)
        {
            if(r[i] > by)
                maxset.push_back(i);
        }
    }

    return maxset[0];

    return 0;
}

int greaterValue(int n, int w) 
{
    int b[n];
    int r[n];
    for(int i = 0; i < n; i++)
    {
        b[i] = 0;
    }

    int left = 0;
    int right = n / 2;
    int mid;

    while(right - left > 1)
    {
        mid = left + (right - left) / 2;

        b[0] = b[1] = mid;

        playRound(b, r);

        if(r[0] <= mid && r[1] <= mid)
            right = mid;
        else if(r[0] > mid && r[1] > mid)
            left = mid;
        else
            return r[0] < r[1];
    }

    b[0] = b[1] = left;
    playRound(b, r);

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

void allValues(int n, int w, int *p) 
{
    
}
#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...