Submission #1178532

#TimeUsernameProblemLanguageResultExecution timeMemory
1178532amine_arouaKoala Game (APIO17_koala)C++20
4 / 100
22 ms440 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);
        map<pair<int ,int> , bool> mp;
        sort(order.begin() , order.end() , [&N , &mp](int a ,int b)->bool{
            if(a == b)
                return 0;
            if(mp.count({a , b}))
                return mp[{a , b}];
            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);
            bool bb = 1;
            if(R[b] > B[b])
                bb = 1;
            else
                bb = 0;
            mp[{a , b}] = bb;
            mp[{b , a}] = bb;
            return bb;
        });
        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...