제출 #593397

#제출 시각아이디문제언어결과실행 시간메모리
593397shezitt동굴 (IOI13_cave)C++14
100 / 100
836 ms460 KiB
#include "cave.h"
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cassert>
#include <set>
 
using namespace std;
 
bool open(int q, int i){
	if(q == -1){
		return 1;
	}
	return q > i;
}
 
void exploreCave(int N) {
	int a[N], b[N];
	for(int i=0; i<N; ++i){
		a[i] = 0, b[i] = -1;
	}
	for(int i=0; i<N; ++i){
		bool p = 0;
		for(int j=0; j<N; ++j){
			if(b[j] == -1){
				a[j] = p;
			}
		}
		if(!open(tryCombination(a), i)){
			p = !p;
		}
		int l = 0, r = N-1, ans = -1;
		while(l < r){
			int mid = (l+r)/2;
			for(int j=0; j<N; ++j){
				if(b[j] == -1){
					if(j >= l && j <= mid){
						a[j] = p;
					} else {
						a[j] = !p;
					}
				}
			}
			if(open(tryCombination(a), i)){
				r = mid;
			} else {
				l = mid+1;
			}
		}
		b[l] = i;
		a[l] = p;
	}
	answer(a, b);
}

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:32:23: warning: unused variable 'ans' [-Wunused-variable]
   32 |   int l = 0, r = N-1, ans = -1;
      |                       ^~~
#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...