답안 #115442

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
115442 2019-06-07T13:38:05 Z 김세빈(#2863) 코알라 (APIO17_koala) C++14
37 / 100
111 ms 504 KB
#include <bits/stdc++.h>

#include "koala.h"

using namespace std;

int minValue(int n, int w)
{
	int B[111], R[111];
	int i;
	
	for(i=0; i<n; i++){
		B[i] = 1;
	}
	
	playRound(B, R);
	
	for(i=0; i<n; i++){
		if(R[i] == 2) break;
		B[i] = 0;
	}
	
	B[i] = 1;
	
	for(i++; i<n; i++){
		B[i] = 0;
	}
	
	playRound(B, R);
	
	for(i=0; i<n; i++){
		if(!R[i]) return i;
	}
	
    return 0;
}

int maxValue(int n, int w)
{
	int B[111], R[111];
	int i, s, k;
	
	for(i=0; i<n; i++){
		B[i] = 1;
	}
	
	for(k=1, s=n; s>1; ){
		for(i=0; i<n; i++){
			B[i] *= k;
		}
		
		playRound(B, R);
		
		for(i=0, s=0; i<n; i++){
			if(B[i] == k && R[i] > k){
				B[i] = 1; s ++;
			}
			else B[i] = 0;
		}
		
		k = n / s;
	}
	
	for(i=0; i<n; i++){
		if(B[i]) return i;
	}
	
	return 0;
}

bool compare(int n, int x, int y)
{
	int B[111], R[111];
	int N[6] = {1, 2, 3, 4, 6, 10};
	int i, s, e, m;
	
	for(s=0, e=5; s<=e; ){
		m = s + e >> 1;
		
		for(i=0; i<n; i++){
			B[i] = 0;
		}
		
		B[x] = B[y] = N[m];
		
		playRound(B, R);
		
		if(R[x] && R[y]) s = m + 1;
		else if(!R[x] && !R[y]) e = m - 1;
		else return !R[x];
	}
	
	return 0;
}

int greaterValue(int n, int w){ return compare(n, 0, 1); }

void allValues(int n, int w, int *P)
{
	if(w == n + n){
		int D[111], B[111], R[111];
		int i;
		
		for(i=0; i<n; i++){
			D[i] = i;
		}
		
		sort(D, D + n, [&](int &a, int &b){
			for(i=0; i<n; i++){
				B[i] = 0;
			}
			
			B[a] = B[b] = n;
			
			playRound(B, R);
			
			return !R[a];
		});
		
		for(i=0; i<n; i++){
			P[D[i]] = i + 1;
		}
	}
	else{
	}
}

Compilation message

koala.cpp: In function 'bool compare(int, int, int)':
koala.cpp:78:9: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   m = s + e >> 1;
       ~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 384 KB Output is correct
2 Correct 9 ms 384 KB Output is correct
3 Correct 9 ms 384 KB Output is correct
4 Correct 8 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 384 KB Output is correct
2 Correct 14 ms 384 KB Output is correct
3 Correct 13 ms 384 KB Output is correct
4 Correct 13 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 64 ms 408 KB Output is correct
2 Correct 72 ms 476 KB Output is correct
3 Correct 67 ms 504 KB Output is correct
4 Correct 111 ms 504 KB Output is correct
5 Correct 68 ms 504 KB Output is correct
6 Correct 66 ms 384 KB Output is correct
7 Correct 62 ms 384 KB Output is correct
8 Correct 66 ms 384 KB Output is correct
9 Correct 66 ms 412 KB Output is correct
10 Correct 70 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 34 ms 476 KB Output is correct
2 Incorrect 47 ms 300 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -