Submission #1030321

#TimeUsernameProblemLanguageResultExecution timeMemory
1030321vjudge1Koala Game (APIO17_koala)C++17
43 / 100
53 ms480 KiB
#include "koala.h"
#include<bits/stdc++.h>
using namespace std;
mt19937 rng(243987);
int you[100],cnt;
int minValue(int N, int W) {
    int me[100]{1};
    playRound(me,you),cnt++;
    for(int i=0;i<N;i++)
        if(you[i]==0)
            return i;
    return 0;
}

int maxValue(int N, int W) {
    int me[100];
    vector<int>theposs(N);
    iota(theposs.begin(),theposs.end(),0);
    while(theposs.size()>1){
        memset(me,0,sizeof me);
        for(auto i:theposs)
            me[i]=W/theposs.size();
        playRound(me,you),cnt++;
        vector<int>theposs2;
        for(auto i:theposs)
            if(you[i])theposs2.push_back(i);
        theposs=theposs2;
    }
    return theposs[0];
}
int greaterValue(int N, int W) {
    int me[100]{1,1};
    int L=1,R=8;
    while(L<=R){
        int mid=L+R+1>>1;
        me[0]=mid;
        me[1]=mid;
        playRound(me,you),cnt++;
        if(you[0]-you[1])
            return cerr<<mid,!you[0];
        if(you[0])
            L=mid+1+(L==1&&R==8);
        else R=mid-1;
        L=min(8,L);
    }
    return 0;
}
int lst[101];
int smal[101];
int greaterValue2(int A,int B) {
    int me[100]{};
    me[A]=70;me[B]=70;
    if(cnt==700)assert(0);
    playRound(me,you),cnt++;
    return !you[A];
}

void allValues(int N, int W, int *P) {  
    vector<int>v(N);
    iota(v.begin(),v.end(),0);
    stable_sort(v.begin(),v.end(),[](int a,int b){
        return !greaterValue2(a,b);
    });
    for(int i=0;i<N;i++)
        P[v[i]]=N-i;
}

Compilation message (stderr)

koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:35:20: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   35 |         int mid=L+R+1>>1;
      |                 ~~~^~
#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...