Submission #154349

#TimeUsernameProblemLanguageResultExecution timeMemory
154349songcCave (IOI13_cave)C++14
12 / 100
304 ms512 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[i] = l;
    	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...