Submission #968918

# Submission time Handle Problem Language Result Execution time Memory
968918 2024-04-24T09:37:06 Z kilkuwu Koala Game (APIO17_koala) C++17
33 / 100
57 ms 708 KB
#include "koala.h"

#include <bits/stdc++.h>
#ifdef LOCAL
#include "template/debug.hpp"
#else
#define dbg(...) ;
#define timer(...) ;
#endif

int minValue(int N, int W) {
  int B[N], R[N];
  for (int i = 0; i < N; i++) {
    B[i] = 0;
  }
  B[0] = 1;
  playRound(B, R);

  for (int i = 0; i < N; i++) {
    if (R[i] <= B[i]) {
      return i;
    }
  }
}

int maxValue(int N, int W) {
  int B[N], R[N];
  for (int i = 0; i < N; i++) {
    B[i] = 1;
  }
  playRound(B, R);
  int candidate[N];
  for (int i = 0; i < N; i++) {
    if (R[i] > B[i]) {
      candidate[i] = 1;
      B[i] = 2;
    } else {
      candidate[i] = 0;
      B[i] = 0;
    }
  }
  playRound(B, R);
  for (int i = 0; i < N; i++) {
    if (R[i] > B[i]) {
      if (candidate[i]) {
        B[i] = 4;
      } else {
        B[i] = 0;
      }
    } else {
      candidate[i] = 0;
      B[i] = 0;
    }
  }
  playRound(B, R);
  for (int i = 0; i < N; i++) {
    if (R[i] > B[i]) {
      if (candidate[i]) {
        B[i] = 11;
      } else {
        B[i] = 0;
      }
    } else {
      candidate[i] = 0;
      B[i] = 0;
    }
  }
  playRound(B, R);

  for (int i = 0; i < N; i++) {
    if (R[i] > B[i] && candidate[i]) return i;
  }
}

int greaterValue(int N, int W) {
  int B[N], R[N];
  int lb = 1, rb = std::min(W / 2, 8);
  while (lb <= rb) {
    int mb = (lb + rb) / 2;
    dbg(mb);
    for (int i = 0; i < N; i++) {
      B[i] = 0;
    }
    B[0] = B[1] = mb;
    playRound(B, R);
    bool bought0 = R[0] > B[0];
    bool bought1 = R[1] > B[1];
    if (bought0 == bought1) {
      if (bought0 == 0) {
        rb = mb - 1;
      } else {
        lb = mb + 1;
      }
    } else {
      return !bought0;
    }
  }

  assert(false);

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

Compilation message

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:24:1: warning: control reaches end of non-void function [-Wreturn-type]
   24 | }
      | ^
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:73:1: warning: control reaches end of non-void function [-Wreturn-type]
   73 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 3 ms 344 KB Output is correct
2 Correct 3 ms 344 KB Output is correct
3 Correct 3 ms 344 KB Output is correct
4 Correct 3 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 344 KB Output is correct
2 Correct 13 ms 344 KB Output is correct
3 Correct 10 ms 344 KB Output is correct
4 Correct 10 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 50 ms 464 KB Output is partially correct
2 Partially correct 57 ms 460 KB Output is partially correct
3 Partially correct 47 ms 480 KB Output is partially correct
4 Partially correct 47 ms 472 KB Output is partially correct
5 Partially correct 48 ms 344 KB Output is partially correct
6 Partially correct 49 ms 460 KB Output is partially correct
7 Partially correct 51 ms 460 KB Output is partially correct
8 Partially correct 50 ms 452 KB Output is partially correct
9 Partially correct 48 ms 468 KB Output is partially correct
10 Partially correct 50 ms 708 KB Output is partially correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 352 KB Output isn't correct
2 Halted 0 ms 0 KB -