답안 #968958

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
968958 2024-04-24T10:19:24 Z kilkuwu 코알라 (APIO17_koala) C++17
37 / 100
50 ms 712 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, 9);
  
  while (lb <= rb) {
    int mb = (lb + rb) / 2;
    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;
    }
  }
}
 
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 | }
      | ^
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:98:1: warning: control reaches end of non-void function [-Wreturn-type]
   98 | }
      | ^
# 결과 실행 시간 메모리 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 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 456 KB Output is correct
2 Correct 10 ms 344 KB Output is correct
3 Correct 10 ms 344 KB Output is correct
4 Correct 13 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 42 ms 468 KB Output is correct
2 Correct 50 ms 476 KB Output is correct
3 Correct 42 ms 712 KB Output is correct
4 Correct 39 ms 476 KB Output is correct
5 Correct 40 ms 464 KB Output is correct
6 Correct 40 ms 464 KB Output is correct
7 Correct 41 ms 484 KB Output is correct
8 Correct 40 ms 464 KB Output is correct
9 Correct 40 ms 460 KB Output is correct
10 Correct 39 ms 480 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -