답안 #983400

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
983400 2024-05-15T12:01:21 Z thelegendary08 코알라 (APIO17_koala) C++14
37 / 100
46 ms 500 KB
#include "koala.h"
#include<bits/stdc++.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 round[N];
    round[0] = 1;
    for(int i = 1;i<N;i++)round[i] = 0;
    int ret[N];
    playRound(round, ret);
    bool isfirst = 1;
    int zero = 0;
    for(int i = 0;i<N;i++){
        if(ret[i] == 2){
            isfirst = 0;
        }
        if(ret[i] == 0)zero = i;
    }
    if(isfirst)return 0;
    else return zero;
}

int maxValue(int N, int W) {
    int poss = N;
    vector<bool>can(N, true);
    while(poss > 1){
        int num = W/poss;
        int quer[N];
        for(int i = 0;i<N;i++){
            if(can[i])quer[i] = num;
            else quer[i] = 0;
        }
        int ret[N];
        playRound(quer, ret);
        for(int i = 0;i<N;i++){
            if(ret[i] == 0 && can[i])can[i] = 0;
        }
        poss = 0;
        for(int i = 0;i<N;i++){
            if(can[i])poss++;
        }
    }
    int ans = 0;
    for(int i = 0;i<N;i++){
        if(can[i])ans = i;
    }
    return ans;
}

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 quer[N];
    quer[0] = 5;
    quer[1] = 5;
    for(int i = 2;i<N;i++)quer[i] = 0;
    int ret[N];
    playRound(quer, ret);
    if(ret[0] == 0 && ret[1] != 0)return 1;
    else if(ret[0] != 0 && ret[1] == 0)return 0;
    else{
        if(ret[0] == 0){
            quer[0] = 2;
            quer[1] = 2;
            playRound(quer, ret);
            if(ret[0] == 0 && ret[1] != 0)return 1;
            else if(ret[0] != 0 && ret[1] == 0)return 0;
            else{
                if(ret[0] == 0){
                    quer[0] = 1;
                    quer[1] = 1;
                    playRound(quer, ret);
                    if(ret[0] == 0 && ret[1] != 0)return 1;
                    else return 0;
                }
                else{
                    quer[0] = 3;
                    quer[1] = 3;
                    playRound(quer, ret);
                    if(ret[0] == 0 && ret[1] != 0)return 1;
                    else return 0;
                }
            }
        }
        else{
            quer[0] = 8;
            quer[1] = 8;
            playRound(quer, ret);
            if(ret[0] == 0 && ret[1] != 0)return 1;
            else return 0;
        }
    }
    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.
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 340 KB Output is correct
2 Correct 3 ms 452 KB Output is correct
3 Correct 4 ms 344 KB Output is correct
4 Correct 3 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 452 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 42 ms 460 KB Output is correct
2 Correct 43 ms 464 KB Output is correct
3 Correct 43 ms 484 KB Output is correct
4 Correct 39 ms 480 KB Output is correct
5 Correct 42 ms 480 KB Output is correct
6 Correct 46 ms 344 KB Output is correct
7 Correct 41 ms 484 KB Output is correct
8 Correct 43 ms 500 KB Output is correct
9 Correct 43 ms 460 KB Output is correct
10 Correct 38 ms 480 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 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -