답안 #774439

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
774439 2023-07-05T17:59:23 Z MohamedFaresNebili 코알라 (APIO17_koala) C++14
33 / 100
57 ms 328 KB
#include <bits/stdc++.h>
#include "koala.h"

            using namespace std;

            int minValue(int N, int W) {
                int B[N], R[N]; B[0] = 1;
                for(int l = 1; l < N; l++) B[l] = 0;
                playRound(B, R);
                for(int l = 1; l < N; l++)
                    if(R[l] == 0) return l;
                B[0] = 0, B[1] = 1;
                playRound(B, R);
                for(int l = 0; l < N; l++)
                    if(R[l] == 0 && l != 1) return l;
                return 0;
            }

            int maxValue(int N, int W) {
                int B[N], R[N]; vector<int> A;
                for(int l = 0; l < N; l++)
                    A.push_back(l), B[l] = 1;
                while(A.size() > 1) {
                    for(int l = 0; l < N; l++) B[l] = 0;
                    for(auto u : A) B[u] = (W / A.size());
                    A.clear(); playRound(B, R);
                    for(int l = 0; l < N; l++)
                        if(R[l] > B[l] && B[l] > 0) A.push_back(l);
                }
                return A[0];
            }

            int greaterValue(int N, int W) {
                int B[N], R[N];
                for(int l = 0; l < N; l++) B[l] = 0;
                int lo = 1, hi = min(W, 8);
                while(lo <= hi) {
                    int md = (lo + hi) / 2;
                    B[0] = md, B[1] = md;
                    playRound(B, R);
                    if(R[0] != R[1]) return (R[0] > R[1] ? 0 : 1);
                    if(R[0] <= B[0] && R[1] <= B[1]) hi = md - 1;
                    else lo = md + 1;
                }/**
                for(int l = 1; l < N; l++) {
                    B[0] = 2 * l, B[1] = 2 * l;
                    playRound(B, R);
                  	if(R[0] < B[0] && R[1] < B[1]) {
                    	B[0] = 2 * l - 1, B[1] = 2 * l - 1;
                      	playRound(B, R);
                    }
                    if(R[0] != R[1]) return (R[0] > R[1] ? 0 : 1);
                }**/
                // TODO: Implement Subtask 3 solution here.
                // You may leave this function unmodified if you are not attempting this
                // subtask.
                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.
                }
            }
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 208 KB Output is correct
2 Correct 4 ms 208 KB Output is correct
3 Correct 3 ms 208 KB Output is correct
4 Correct 3 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 324 KB Output is correct
2 Correct 10 ms 208 KB Output is correct
3 Correct 10 ms 208 KB Output is correct
4 Correct 12 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 51 ms 316 KB Output is partially correct
2 Partially correct 57 ms 324 KB Output is partially correct
3 Partially correct 47 ms 324 KB Output is partially correct
4 Partially correct 47 ms 328 KB Output is partially correct
5 Partially correct 48 ms 320 KB Output is partially correct
6 Partially correct 49 ms 328 KB Output is partially correct
7 Partially correct 47 ms 328 KB Output is partially correct
8 Partially correct 54 ms 328 KB Output is partially correct
9 Partially correct 47 ms 328 KB Output is partially correct
10 Partially correct 46 ms 324 KB Output is partially correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Output isn't correct
2 Halted 0 ms 0 KB -