Submission #1306819

#TimeUsernameProblemLanguageResultExecution timeMemory
1306819TymondKoala Game (APIO17_koala)C++20
19 / 100
9 ms436 KiB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define fi first
#define se second
#define vi vector<int>
#define vll vector<long long>
#define pii pair<int, int>
#define pll pair<long long, long long>
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int)(x).size()
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
mt19937_64 rng64(chrono::high_resolution_clock::now().time_since_epoch().count());
inline int rand(int l,int r){return uniform_int_distribution<int>(l, r)(rng);}
inline ll rand(ll l,ll r){return uniform_int_distribution<ll>(l, r)(rng64);}
#ifdef DEBUG
auto&operator<<(auto&o,pair<auto,auto>p){return o<<"("<<p.first<<", "<<p.second<<")";}
auto operator<<(auto&o,auto x)->decltype(x.end(),o){o<<"{";int i=0;for(auto e:x)o<<","+!i++<<e;return o<<"}";}
#define debug(X...)cerr<<"["#X"]: ",[](auto...$){((cerr<<$<<"; "),...)<<endl;}(X)
#else
#define debug(...){}
#endif

int minValue(int N, int W) {
    int B[N];
    for(int i = 0; i < N; i++){
        B[i] = 0;
    }
    B[0] = 1;
    int X[N];
    playRound(B, X);

    for(int i = 0; i < N; i++){
        if(i == 0){
            if(X[i] <= 1){
                return i;
            }
        }else{
            if(X[i] == 0){
                return i;
            }
        }
    }
    return 0;
}

int maxValue(int N, int W) {
    int X[N];
    vi vec = {};
    for(int i = 0; i < N; i++){
        vec.pb(i);
    }

    for(int j = 0; j < 4; j++){
        int val = 1;
        while(sz(vec) * (val + 1) <= W && N > (val + 1) * (val + 2) / 2){
            val++;
        }
        for(int i = 0; i < N; i++){
            X[i] = 0;
        }
        for(auto ele : vec){
            X[ele] = val;
        }
        int W[N];
        playRound(X, W);

        vi nvec = {};
        for(auto ele : vec){
            if(W[ele] > X[ele]){
                nvec.pb(ele);
            }
        }
        vec = nvec;
        //debug(vec);
    }

    return vec[0];
}

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