Submission #1179663

#TimeUsernameProblemLanguageResultExecution timeMemory
1179663amine_arouaKoala Game (APIO17_koala)C++20
4 / 100
22 ms424 KiB
#include "koala.h"
#include<bits/stdc++.h>
using namespace std;
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.
    int B[N] , R[N];
    B[0] = 1;
    for(int i = 1 ; i < N ;i++)
    {
        B[i] = 0;
        R[i] = 0;
    }
    playRound(B , R);
    for(int i = 0 ;i < N ; i++)
    {
        if(R[i] <= B[i])
        {
            return i;
        }
    }
    return 0;
}

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.
    int B[N] , R[N];
    // cout<<"HELLO\n";
    for(int i = 0 ; i < N ;i++)
    {
        B[i] = 1;
        R[i] = 0;
    }
    int nb1 = N;
    int ret = 0;
    vector<bool> bad(N);
    while(nb1 > 1)
    {
        // cout<<"B : ";
        // for(int i = 0 ; i < N ; i++)
        // {
        //     cout<<B[i]<<" ";
        // }
        // cout<<'\n';
        playRound(B , R);
        // cout<<"R : ";
        // for(int i = 0 ; i < N ; i++)
        // {
        //     cout<<R[i]<< " ";
        // }
        // cout<<'\n';
        nb1 = 0;
        for(int i = 0 ; i < N ; i++)
        {
            if(bad[i])
                continue;
            if(R[i] <= B[i])
            {
                bad[i] = 1;
                B[i] = 0;
            }
            else
            {
                B[i]*=2;
                nb1++;
                ret = i;
            }
        }

    }
    return ret;
}

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.
        vector<int> order(N);
        iota(order.begin() , order.end() , 0);
        sort(order.begin() , order.end() , [N](const int &a ,const int &b){
            if(a == b)
                return 0;
            int B[N] , R[N];
            for(int i = 0 ; i < N ; i++)
            {
                B[i] = 0 , R[i] = 0;
            }
            B[a] = N;
            B[b] = N;
            playRound(B , R);
            if(R[b] > B[b])
                return 1;
            return 0;
        });
        for(int i = 0 ; i < N ; i++)
        {
            P[order[i]] = i + 1;
        } 
    } 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...