Submission #1074623

#TimeUsernameProblemLanguageResultExecution timeMemory
1074623noyancanturkKoala Game (APIO17_koala)C++17
37 / 100
52 ms600 KiB
#include "koala.h"

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

int b[100],r[100];

int minValue(int n, int w) {
  for(int i=0;i<n;i++){
    b[i]=0;
  }
  b[0]=1;
  playRound(b,r);
  if(r[0]==2){
    for(int i=1;i<n;i++){
      if(r[i]==0)return i;
    }
  }
  return 0;
}

int maxValue(int n, int w) {
  bool ok[n];
  memset(ok,1,n);
  for(int i=1;i<=16;i<<=1){
    if(i==8)i=11;
    for(int j=0;j<n;j++){
      if(ok[j]){
        b[j]=i;
      }else{
        b[j]=0;
      }
    }
    playRound(b,r);
    int cnt=0;
    for(int j=0;j<n;j++){
      if(ok[j]){
        if(i<r[j]){
          cnt++;
        }else{
          ok[j]=0;
        }
      }
    }
  }
  for(int i=0;i<n;i++)if(ok[i])return i;
  return -1;
}

int trycnt(int d,int n){
  for(int i=0;i<n;i++){
    b[i]=0;
  }
  b[0]=b[1]=d;
  playRound(b,r);
  if((d<r[0])!=(d<r[1])){
    if(d<r[0])return 0;
    return 1;
  }
  if(d<r[0])return 2;
  return 3;
}

int greaterValue(int n,int w) {
  int res=trycnt(4,n);
  if(res<2)return res;
  if(res==2){
    res=trycnt(6,n);
    if(res<2)return res;
    res=trycnt(9,n);
    return res;
  }
  res=trycnt(2,n);
  if(res<2)return res;
  return !minValue(n,w);
}

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...