Submission #717284

#TimeUsernameProblemLanguageResultExecution timeMemory
717284Juan동굴 (IOI13_cave)C++14
0 / 100
139 ms444 KiB
                    #include<bits/stdc++.h>
                    #include "cave.h"
                    using namespace std;
                     
                     
                    void exploreCave(int N){
                    	vector<int> unprocessed;
                    	for(int i = 0; i < N; i++) unprocessed.push_back(i);
                    	int vask[N]={}, S[N]={};
                    	int D[N]={};
                    	for(int i = 0; i < N; i++){
                    		for(int x : unprocessed) vask[x] = 0;
                    		S[i] = 1;
                    		if(tryCombination(vask)!=i){
                    			for(int x : unprocessed) vask[x] = 1;
                    			S[i] = 0;
                    		}
                     
                    		int l = 0, r = unprocessed.size()-1;
                    		while(l<=r){
                    			int m = (l+r)>>1;
                    			for(int j = 0; j <= m; j++) vask[unprocessed[j]] = 1-vask[unprocessed[j]];
                    			int ret = tryCombination(vask);
                    			if(ret==i) l = m+1;
                    			else r = m-1;
                     
                    			for(int j = 0; j <= m; j++) vask[unprocessed[j]] = 1-vask[unprocessed[j]];
                    		}
                     		
                          	int pos = unprocessed[l];
                          	S[pos] = 1-vask[l];
                    		D[pos] = i;
                          	vask[pos] = S[pos];
                    		unprocessed.erase(unprocessed.begin()+l);
                    	}
                     
                    	answer(S, D);
                    }
#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...