답안 #347554

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
347554 2021-01-13T08:11:43 Z happypotato 코알라 (APIO17_koala) C++17
37 / 100
80 ms 492 KB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;

int minValue(int N, int W) {
    // TODO: Implement Subtask 1 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.
    int b[N], r[N];
    b[0] = 1;
    for (int i = 1;i < N;i++) b[i] = 0;
    playRound(b, r);
    if (r[0] < 2) return 0;
    for (int i = 1;i < N;i++) {
    	if (r[i] == 0) return i;
	}
    return -1;
}

int maxValue(int N, int W) {
    // TODO: Implement Subtask 2 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.
    int b[N], r[N];
    vector<int> v;
    for (int i = 0;i < N;i++) {
    	b[i] = 0;
    	v.push_back(i);
	}
    while (v.size() > 1) {
    	for (int i = 0;i < N;i++) b[i] = 0;
    	for (int i : v) b[i] = W / v.size();
    	playRound(b, r);
    	v.clear();
    	for (int i = 0;i < N;i++) {
    		if (b[i] > 0 && r[i] > b[i]) {
    			v.push_back(i);
			}
		}
	}
	return v[0];
}

int greaterValue(int N, int W) {
    // TODO: Implement Subtask 3 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.
    int b[N], r[N];
    for (int i = 0;i < N;i++) b[i] = 0;
    int lb = 1, rb = 10;
    while (lb <= rb) {
    	int mid = (lb + rb) / 2;
    	b[0] = mid, b[1] = mid;
    	playRound(b, r);
    	if (r[0] <= b[0] && r[1] > b[1]) return 1;
    	else if (r[0] > b[0] && r[1] <= b[1]) return 0;
    	else if (r[0] <= b[0] && r[1] <= b[1]) rb = mid - 1;
    	else if (r[0] > b[0] && r[1] > b[1]) lb = mid + 1;
	}
    return -1;
}

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.
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 364 KB Output is correct
2 Correct 6 ms 364 KB Output is correct
3 Correct 6 ms 364 KB Output is correct
4 Correct 6 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 364 KB Output is correct
2 Correct 18 ms 364 KB Output is correct
3 Correct 18 ms 492 KB Output is correct
4 Correct 18 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 75 ms 364 KB Output is correct
2 Correct 80 ms 364 KB Output is correct
3 Correct 73 ms 364 KB Output is correct
4 Correct 71 ms 364 KB Output is correct
5 Correct 71 ms 492 KB Output is correct
6 Correct 72 ms 364 KB Output is correct
7 Correct 73 ms 364 KB Output is correct
8 Correct 74 ms 364 KB Output is correct
9 Correct 73 ms 492 KB Output is correct
10 Correct 72 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -