제출 #164832

#제출 시각아이디문제언어결과실행 시간메모리
164832Berted동굴 (IOI13_cave)C++14
100 / 100
1008 ms560 KiB
#include "cave.h"
 
int s[5001]={},d[5001]={},n;
int tp[5001]={};
 
inline int ck()
{
	for (int i=0;i<n;i++)
	{
		if (s[i]!=-1) {tp[i] = s[i];}
		else {tp[i] = 0;}
	}
	return tryCombination(tp);
}
 
inline int ck2(int x,int y)
{
	int lg = 0;
	for (int i=0;i<n;i++)
	{
		if (s[i]!=-1) {tp[i] = s[i];}
		else
		{
			if (lg<x) {tp[i] = y;} else {tp[i] = !y;}
			lg++;
		}
	}
	return tryCombination(tp);
}
 
inline int st(int ps)
{
	int lg = 0;
	for (int i=0;i<n;i++)
	{
		if (s[i]==-1)
		{
			lg++;
			if (lg==ps) {return i;}
		}
	}
}
 
void exploreCave(int N) {
    n = N;
    for (int i=0;i<n;i++) {s[i] = -1;d[i] = -1;}
    for (int i=0;i<n;i++)
    {
    	int fl = (ck() == i);
    	int l = 1,r = n - i;
    	while (l<r)
    	{
    		int pv = (l+r)/2;
    		if (ck2(pv,fl)==i) {l = pv+1;}
    		else {r = pv;}
    	}
    	int x = st(l);
    	s[x] = fl;d[x] = i;
    }
    answer(s,d);
}

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

cave.cpp: In function 'int st(int)':
cave.cpp:42:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...