제출 #53061

#제출 시각아이디문제언어결과실행 시간메모리
53061arthur_nascimento코알라 (APIO17_koala)C++14
37 / 100
122 ms812 KiB
#include "koala.h"

int minValue(int N, int W) {
    int v[N];
    v[0] = 1;
    for(int i=1;i<N;i++)
        v[i] = 0;
    int ans[N];
    playRound(v,ans);
    for(int i=0;i<N;i++)
        if(ans[i] == 0)
            return i;
    return 0;
}

int maxValue(int N, int W) {
    int v[N];
    int ans[N];
    int tot[N];
    for(int i=0;i<N;i++)
        v[i] = 1, tot[i] = 0;
    playRound(v,ans);
    for(int i=0;i<N;i++){
        tot[i] += (ans[i] > v[i]);
        v[i] = (ans[i]?2:0);
    }
    playRound(v,ans);
    int u = 0;
    for(int i=0;i<N;i++){
        tot[i] += (ans[i] > v[i]);
        if(tot[i] == 2) v[i] = 4, u++;
        else v[i] = 0;
    }

    playRound(v,ans);
    for(int i=0;i<N;i++){
        tot[i] += (ans[i] > v[i]);
        if(tot[i] == 3) v[i] = 11;
        else v[i] = 0;
    }
    playRound(v,ans);
    for(int i=0;i<N;i++)
        if(tot[i]+(ans[i]>v[i]) == 4)
            return i;
        
    return 0;
}

int greaterValue(int N, int W) {
    int lo[8] = {-0,-1,-2,2,-4,3,-6,6};
    int hi[8] = {-0,-1,-2,4,-4,7,-6,8};
    int cur = 5;
    int v[N];
    int ans[N];
    for(int i=0;i<3;i++){
       // printf("cur %d\n",cur);
        if(cur == 8){
            for(int j=0;j<N;j++)
                v[j] = (j <= 1) ? 10 : 0;
            playRound(v,ans);
            return (ans[1] > 10);
        }
        for(int j=0;j<N;j++)
            v[j] = (j <= 1) ? (cur-1) : 0;
        playRound(v,ans);
        ans[0] = (ans[0] > v[0]);
        ans[1] = (ans[1] > v[1]);
        if(ans[0] != ans[1])
            return ans[1] > ans[0];
        if(ans[0] == 0)
            cur = lo[cur];
        else
            cur = hi[cur];
    }
    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...