Submission #652493

# Submission time Handle Problem Language Result Execution time Memory
652493 2022-10-22T18:31:49 Z blue Koala Game (APIO17_koala) C++17
19 / 100
17 ms 324 KB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;

using vi = vector<int>;
using vvi = vector<vi>;
#define sz(x) int(x.size())

int N;

vi playRound(vi BV)
{
    int B[N];
    int R[N];
    for(int i = 0; i < N; i++)
    {
        B[i] = BV[i];
    }
    playRound(B, R);

    vi RV(N);
    for(int i = 0; i < N; i++)
        RV[i] = R[i];

    return RV;
}

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

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

    return 0;
}

int maxValue(int N_, int W) {
    N = N_;
   
    vi cand;
    for(int i = 0; i < N; i++)
        cand.push_back(i);

    while(sz(cand) > 1)
    {
        int toput = W / sz(cand);

        vi B(N, 0);
        for(int i : cand)
            B[i] = toput;

        vi R = playRound(B);

        vi newcand;

        for(int i = 0; i < N; i++)
        {
            if(B[i] > 0 && R[i] > B[i])
                newcand.push_back(i);
        }
        cand = newcand;
    }

    return cand[0];
}

int greaterValue(int N_, int W) {
    N = N_;
    
    int lo = 20, hi = 70;
    while(lo != hi)
    {
        int mid = (lo+hi)/2;

        vi B(N, 0);
        B[0] = B[1] = mid;

        vi R = playRound(B);

        vi taken(N, 0);
        for(int i = 0; i < N; i++)
            if(R[i] > B[i])
                taken[i] = 1;

        if(taken[0] && !taken[1])
            return 0;

        if(taken[1] && !taken[0])
            return 1;

        if(taken[1] && taken[0])
            lo = mid+1;
        else
            hi = mid-1;
    }

    return -1;
}

void allValues(int N_, int W, int *P_) {
    N = N_;

    vi P(N);
    for(int i = 0; i < N; i++)
        P[i] = P_[i];

    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 time Memory Grader output
1 Correct 5 ms 316 KB Output is correct
2 Correct 5 ms 208 KB Output is correct
3 Correct 3 ms 208 KB Output is correct
4 Correct 4 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 320 KB Output is correct
2 Correct 12 ms 324 KB Output is correct
3 Correct 12 ms 208 KB Output is correct
4 Correct 12 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -