답안 #775264

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
775264 2023-07-06T09:13:16 Z arayi 코알라 (APIO17_koala) C++17
37 / 100
51 ms 1200 KB
#include "koala.h"

#include <bits/stdc++.h>
using namespace std;
#define ad push_back

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 = new int[n];
    int *r = new int[n];
    for (int i = 0; i < n; i++) {
        b[i] = 0;
    }
    b[0] = 1;
    playRound(b, r);
    int ans = 0;
    if (r[0] <= 1)
        ans = 0;
    else {
        for (int i = 0; i < n; i++) {
            if (r[i] == 0) {
                ans = i;
                break;
            }
        }
    }
    delete b;
    delete r;
    return ans;
}

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 = new int[n];
    int *r = new int[n];
    vector<int> fp;
    int ans;
    for (int i = 0; i < n; i++)
        fp.ad(i);
    for (int i : {2, 3, 5}) {
        for (int j = 0; j < n; j++)
            b[j] = 0;
        for (auto p : fp)
            b[p] = n / (int)fp.size();
        playRound(b, r);
        fp.clear();
        for (int j = 0; j < n; j++)
            if (r[j] == i) fp.ad(j);
    }
    for (int j = 0; j < n; j++)
        b[j] = 0;
    for (auto p : fp)
        b[p] = 11;
    playRound(b, r);
    for (auto p : fp) {
        if (r[p] > 11) ans = p;
    }
    delete b;
    delete r;
    return ans;
}

int stg(int *b, int *r) {
    if (r[0] > b[0] && r[1] <= b[1]) return 0;
    if (r[0] <= b[0] && r[1] > b[1]) return 1;
    if (r[0] > b[0]) return 2;
    return 3;
}
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 = new int[n];
    int *r = new int[n];
    for (int i = 0; i < n; i++)
        b[i] = 0;
    b[0] = b[1] = 5;
    playRound(b, r);
    if (stg(b, r) < 2) return stg(b, r);
    if (stg(b, r) == 2) {
        b[0] = b[1] = 8;
        playRound(b, r);
        if (stg(b, r) < 2) return stg(b, r);
        if (stg(b, r) == 2) {
            b[0] = b[1] = 10;
            playRound(b, r);
            return stg(b, r);
        } else {
            b[0] = b[1] = 7;
            playRound(b, r);
            return stg(b, r);
        }
    } else {
        b[0] = b[1] = 2;
        playRound(b, r);
        if (stg(b, r) < 2) return stg(b, r);
        if (stg(b, r) == 2) {
            b[0] = b[1] = 3;
            playRound(b, r);
            return stg(b, r);
        } else {
            b[0] = b[1] = 1;
            playRound(b, r);
            return stg(b, r);
        }
    }
    delete b;
    delete r;
    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.
    }
}

Compilation message

koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:64:12: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   64 |     return ans;
      |            ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 208 KB Output is correct
2 Correct 4 ms 208 KB Output is correct
3 Correct 3 ms 208 KB Output is correct
4 Correct 3 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 316 KB Output is correct
2 Correct 10 ms 312 KB Output is correct
3 Correct 10 ms 316 KB Output is correct
4 Correct 10 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 1200 KB Output is correct
2 Correct 44 ms 1024 KB Output is correct
3 Correct 51 ms 1088 KB Output is correct
4 Correct 41 ms 1172 KB Output is correct
5 Correct 40 ms 1068 KB Output is correct
6 Correct 41 ms 1088 KB Output is correct
7 Correct 41 ms 1104 KB Output is correct
8 Correct 40 ms 1096 KB Output is correct
9 Correct 41 ms 1172 KB Output is correct
10 Correct 39 ms 1080 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -