제출 #154350

#제출 시각아이디문제언어결과실행 시간메모리
154350songc동굴 (IOI13_cave)C++14
0 / 100
269 ms488 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
typedef long long LL;
typedef pair<int,int> pii;

int N;
int S[5050];
int ans[5050];

void exploreCave(int n) {
    N = n;
    memset(ans, -1, sizeof ans);
    for (int i=0; i<N; i++){
    	bool st = (i == tryCombination(S));
    	int l = 0, r=N-1;
    	while (l <= r){
    		int mid = (l+r)/2;
    		for (int i=l; i<=mid; i++) if (ans[i] == -1) S[i] = 1;
    		bool ret = (i == tryCombination(S));
    		for (int i=l; i<=mid; i++) if (ans[i] == -1) S[i] = 0;
    		if (st == ret) l = mid+1;
    		else r = mid-1, ans[i] = mid;
    	}
    	if (st) S[l] = 1;
    }
    answer(S, ans);
}
#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...