제출 #959531

#제출 시각아이디문제언어결과실행 시간메모리
959531Trisanu_Das코알라 (APIO17_koala)C++17
60 / 100
47 ms704 KiB
#include <assert.h>
#include <iostream>
#include <algorithm>
#include "koala.h"
using namespace std;
 
int minValue(int N, int W) {
    
	int B[N],R[N];
	fill(B,B+N,0);
 
	B[0]=1;
 
	playRound(B,R);
 
	int res=0;
 
	for(int i=0;i<N;i++)
		if(R[i]==0)
			res=i;
 
    return res;
}
 
int maxValue(int N, int W) {
 
	int B[N],R[N];
	int V[N];
	fill(V,V+N,1);
	fill(B,B+N,0);
	fill(R,R+N,0);
 
	int res=N;
 
	while(true){
		
		int k=(int)(N/res);
		for(int i=0;i<N;i++)
			B[i]=V[i]*k;
 
		//for(int i=0;i<N;i++)cout<<B[i]<<" ";cout<<endl;
		playRound(B,R);
 
		res=0;
		for(int i=0;i<N;i++){
			if(V[i] and !R[i])
				V[i]=false;
			if(V[i] and R[i])
				res++;
		}
 
		if(res==1)
			for(int i=0;i<N;i++)
				if(V[i] and R[i])
					return i;
 
		assert(res);
 
	}
 
}
 
int greaterValue(int N, int W) {
 
    int B[N],R[N];
	fill(B,B+N,0);
	fill(R,R+N,0);
 
	int l=0,r=10,m;
 
	while(l<r){
		
		m=(l+r)/2;
 
		B[0]=B[1]=m;
		playRound(B,R);
 
		if(R[0]!=R[1])
    		return R[0]<R[1];
 
    	if(R[0]==0)
    		r=m;
    	else
    		l=m+1;
 
	}
	
}
 
int N;
 
bool comp(int a, int b){
 
	int B[N],R[N];
	fill(B,B+N,0);
	fill(R,R+N,0);
 
	int l=0,r=min(N,10),m;
 
	while(l<r){
		
		m=(l+r)/2;
 
		B[a]=B[b]=m;
		playRound(B,R);
 
		if(R[a]!=R[b])
    		return R[a]<R[b];
 
    	if(R[a]==0)
    		r=m;
    	else
    		l=m+1;
 
	}
}
 
void allValues(int N_, int W, int *P) {
 
	N=N_;
	int A[N];
	for(int i=0;i<N;i++)
		A[i]=i;
 
	sort(A,A+N,comp);
 
	for(int i=0;i<N;i++)
		P[A[i]]=i+1;
 
}

컴파일 시 표준 에러 (stderr) 메시지

koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:88:1: warning: control reaches end of non-void function [-Wreturn-type]
   88 | }
      | ^
koala.cpp: In function 'bool comp(int, int)':
koala.cpp:116:1: warning: control reaches end of non-void function [-Wreturn-type]
  116 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...