Submission #154459

#TimeUsernameProblemLanguageResultExecution timeMemory
154459songcCave (IOI13_cave)C++14
100 / 100
418 ms576 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;
    	}
    	ans[l] = i;
    	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...