답안 #945094

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
945094 2024-03-13T11:51:42 Z ifateen 코알라 (APIO17_koala) C++17
37 / 100
45 ms 704 KB
#include <bits/stdc++.h>
#include "koala.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];
    memset(b, 0, sizeof(b)); b[0] = 1;
    playRound(b, r);
    if (r[0] <= 1) {
        // he couldnt care less to take this
        return 0;
    }
    // he could sad
    for (int i = 1; i < N; i++) {
        if (r[i] == 0) return i;
    }
}

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.
    vector<int> possible(N);
    iota(begin(possible), end(possible), 0);
    int b[N], r[N];
    while (possible.size() > 1) {
        int add = W / possible.size();
        memset(b, 0, sizeof(b));
        for (auto& i : possible) b[i] = add;
        playRound(b, r);
        possible.clear();
        for (int i = 0; i < N; i++) if (r[i] > add) possible.push_back(i);
    }
    return possible[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.

    int b[N], R[N];
    memset(b, 0, sizeof(b));
    int l = 1, r = 13;
    while (l <= r) {
        int mid = (l + r) >> 1;
        b[0] = mid, b[1] = mid;
        playRound(b, R);
        if (min(R[0], R[1]) > mid /*he took both so idk*/) l = mid + 1;
        else if (max(R[0], R[1]) <= mid /*he took neither so spend less lol*/) r = mid - 1;
        else {
            if (R[0] < R[1]) return 1;
            else return 0;
        }
    }
    assert(false);
}

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

Compilation message

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:20:1: warning: control reaches end of non-void function [-Wreturn-type]
   20 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 344 KB Output is correct
2 Correct 3 ms 344 KB Output is correct
3 Correct 3 ms 344 KB Output is correct
4 Correct 3 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 344 KB Output is correct
2 Correct 11 ms 448 KB Output is correct
3 Correct 10 ms 344 KB Output is correct
4 Correct 10 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 45 ms 484 KB Output is correct
2 Correct 38 ms 472 KB Output is correct
3 Correct 34 ms 468 KB Output is correct
4 Correct 36 ms 468 KB Output is correct
5 Correct 35 ms 468 KB Output is correct
6 Correct 34 ms 464 KB Output is correct
7 Correct 34 ms 344 KB Output is correct
8 Correct 40 ms 704 KB Output is correct
9 Correct 35 ms 472 KB Output is correct
10 Correct 35 ms 464 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -