제출 #1336183

#제출 시각아이디문제언어결과실행 시간메모리
1336183itaykarny코알라 (APIO17_koala)C++20
4 / 100
49 ms1068 KiB
#include "koala.h"
#include<iostream>
#include<vector>
#include<algorithm>
#include<bitset>
#include<math.h>
#include<set>
#include<map>
#include<queue>
#include<stack>

using namespace std;
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vll>;
using pll = pair<ll, ll>;
using vpll = vector<pll>;
using vvpll = vector<vpll>;

const ll n = 100;
ll w = 100;

int b[n], r[n];
int p[n];

void solve(vll& ind, ll offset) {
    ll m = ind.size();
    if (m == 0) { return; }
    if (m == 1) {
        p[ind[0]] = offset;
        return;
    }
    ll put = 1 + (offset / m);
    for (ll i = 0; i < n; i++) {
        b[i] = 0, r[i] = 0;
    }
    for (ll i = 0; i < m; i++) {
        b[ind[i]] = put;
    }
    playRound(b, r);
    vll left, right;
    for (ll i = 0; i < m; i++) {
        if (r[ind[i]] > b[ind[i]]) {
            right.push_back(ind[i]);
        }
        else {
            left.push_back(ind[i]);
        }
    }
    solve(left, offset);
    solve(right, offset + left.size());
}

int minValue(int N, int W) {
    for (ll i = 0; i < n; i++) {
        b[i] = 0, r[i] = 0;
    }
    b[0] = 1;
    playRound(b, r);
    for (ll i = 0; i < n; i++) {
        if (r[i] == 0) { return i; }
    }
}

int maxValue(int N, int W) {
    vll ind(n);
    for (ll i = 0; i < n; i++) {
        ind[i] = i;
    }
    solve(ind, 1);
    for (ll i = 0; i < n; i++) {
        if (p[i] == n) { return i; }
    }
}

int greaterValue(int N, int W) {
    vll ind(n);
    for (ll i = 0; i < n; i++) {
        ind[i] = i;
    }
    solve(ind, 1);
    if (p[0] > p[1]) { return 0; }
    return 1;
}

void allValues(int N, int W, int *P) {
    if (W == 2*N) {
        vll ind(n);
        for (ll i = 0; i < n; i++) {
            ind[i] = i;
        }
        solve(ind, 1);
        for (ll i = 0; i < n; i++) {
            P[i] = p[i];
        }
    } else {
        vll ind(n);
        for (ll i = 0; i < n; i++) {
            ind[i] = i;
        }
        solve(ind, 1);
        for (ll i = 0; i < n; i++) {
            P[i] = p[i];
        }
    }
}

컴파일 시 표준 에러 (stderr) 메시지

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:63:1: warning: control reaches end of non-void function [-Wreturn-type]
   63 | }
      | ^
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:74:1: warning: control reaches end of non-void function [-Wreturn-type]
   74 | }
      | ^
#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...