Submission #53066

# Submission time Handle Problem Language Result Execution time Memory
53066 2018-06-28T00:34:32 Z arthur_nascimento Koala Game (APIO17_koala) C++14
37 / 100
121 ms 824 KB
#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;
}

#include <bits/stdc++.h>
void allValues(int N, int W, int *P) {
    if (W == 2*N) {
        int u = 0;
        int v[N];
        int ans[N];
        int pos[N];
        for(int i=0;i<N;i++){
            int val = i+1;
            int lo = 0, hi = i;
            while(lo != hi){
                int mid = (lo+hi)/2;
                for(int j=0;j<N;j++)
                    v[j] = 0;
                v[i] = W/2;
                v[pos[mid]] = W/2;
                playRound(v,ans);u++;
                assert(u <= 700);
                if(ans[i] > W/2)
                    lo = mid+1;
                else
                    hi = mid;
            }
            if(lo == i){
                P[i] = i;
                pos[i] = i;
            }
            else {
                for(int j=i-1;j>=lo;j--){
                    pos[P[j]] = j+1;
                    P[j+1] = P[j];
                }
                P[lo] = i;
                pos[i] = lo;
            }
            //for(int j=0;j<=i;j++)
             //   printf("%d ",P[j]);
            //printf("\n");
        }
        for(int i=0;i<N;i++)
            P[i] = pos[i]+1;
    } 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 'void allValues(int, int, int*)':
koala.cpp:86:17: warning: unused variable 'val' [-Wunused-variable]
             int val = i+1;
                 ^~~
# Verdict Execution time Memory Grader output
1 Correct 11 ms 376 KB Output is correct
2 Correct 9 ms 452 KB Output is correct
3 Correct 7 ms 452 KB Output is correct
4 Correct 8 ms 508 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 23 ms 528 KB Output is correct
2 Correct 22 ms 528 KB Output is correct
3 Correct 17 ms 540 KB Output is correct
4 Correct 26 ms 540 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 97 ms 540 KB Output is correct
2 Correct 97 ms 540 KB Output is correct
3 Correct 105 ms 540 KB Output is correct
4 Correct 89 ms 600 KB Output is correct
5 Correct 81 ms 600 KB Output is correct
6 Correct 121 ms 736 KB Output is correct
7 Correct 95 ms 812 KB Output is correct
8 Correct 86 ms 812 KB Output is correct
9 Correct 80 ms 812 KB Output is correct
10 Correct 109 ms 824 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 824 KB Output is correct
2 Incorrect 40 ms 824 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 824 KB Output isn't correct
2 Halted 0 ms 0 KB -