제출 #113703

#제출 시각아이디문제언어결과실행 시간메모리
113703thebes동굴 (IOI13_cave)C++14
100 / 100
416 ms640 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

const int MN = 5005;
int *arr, N, i, tmp, d[MN], s[MN];
void st(int l,int r,int v){
	for(;l<=r;l++){
		if(d[l]!=-1) arr[l]=d[l];
		else arr[l]=v;
	}
}
void rec(int l,int r,int id,int val){
	if(l == r){
		s[l] = id;
		d[l] = val;
		st(l,r,0);
		return;
	}
	int m = l+r>>1;
	st(l, m, !val);
	int v = tryCombination(arr);
	st(l, m, val);
	if(v == id) rec(l, m, id, val);
	else rec(m+1, r, id, val);

}
void exploreCave(int n){
	N = n;
	memset(d, -1, sizeof(d));
	arr = (int*)malloc(N*sizeof(int));
	for(i=0;i<N;i++){
		int val = 0;
		st(0,N-1,0);
		if(tryCombination(arr)==i) val = 1;
		else val = 0;
		st(0,N-1,val);
		rec(0,N-1,i,val);
	}
	answer(d, s);
}

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

cave.cpp: In function 'void rec(int, int, int, int)':
cave.cpp:20:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int m = l+r>>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...