Submission #154823

#TimeUsernameProblemLanguageResultExecution timeMemory
154823Nightlight동굴 (IOI13_cave)C++14
Compilation error
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h>

bool found[70005], ketemu;
bool ANS[70005];
int longs;

int binser1(){
	int l = 0, r = longs-1, res = -1;
	while(l <= r){
		int mid = (l+r)/2;
		int tmp[longs];
		for(int i = 0; i < longs; i++)tmp[i] = (l <= i && mid >= i) ? 1 : 0;
		if(tryCombination(tmp) > ketemu){
			r = mid+1;
			res = mid;
		}else l = mid;
	}
	return res;
}

int binser2(){
	int l = 0, r = longs-1, res = -1;
	while(l <= r){
		int mid = (l+r)/2;
		int tmp[longs];
		for(int i = 0; i < longs; i++)tmp[i] = (l <= i && mid >= i) ? 0 : 1;
		if(tryCombination(tmp) > ketemu){
			r = mid+1;
			res = mid;
		}else l = mid;
	}
	return res;
}


void exploreCave(int N) {
	bool Switch[N];
	int door[N];
	longs = N;
	for(ketemu = 0; ketemu < N; ketemu++){
		int res = binser1();
		if(res != -1){
			door[ketemu] = res;
			ANS[res] = 1;
			found[res] = 1;
			Switch[res] = 1;
			continue;
		}
		res = binser2();
		door[ketemu] = res;
		Switch[res] = 1;
		found[res] = 1;
	}
    answer(Switch, door);
}

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:41:36: warning: use of an operand of type 'bool' in 'operator++' is deprecated [-Wdeprecated]
  for(ketemu = 0; ketemu < N; ketemu++){
                                    ^~
cave.cpp:55:24: error: cannot convert 'bool*' to 'int*' for argument '1' to 'void answer(int*, int*)'
     answer(Switch, door);
                        ^