Submission #317193

#TimeUsernameProblemLanguageResultExecution timeMemory
317193seedkinCave (IOI13_cave)C11
100 / 100
378 ms760 KiB
#include "cave.h" int open[5005]; // index = switch number return = 1, 0 ( open value ) int target[5005]; // index = switch number return = door number int S[5005]; // index == switch number return = 1, 0 ( open Value request) int door[5005]; // index = door 번호 return 1, 0 (1 == open, 0 == close); void exploreCave(int N) { for(int i =0; i < N; i++) { open[i] = -1; target[i] = -1; } for(int i = 0; i < N; i++) { // door number for(int j = 0; j < N; j++) { // switch number if(open[j] != -1) { S[j] = open[j]; } else { S[j] = 1; } } int ans = tryCombination(S); if (ans > i || ans == -1) door[i] = 1; else door[i] = 0; int low = 0; int high = N; int mid = (low + high) / 2; while ( low != mid) { for (int j = low; j < mid; j++) { if(open[j] != -1) { S[j] = open[j]; } else { S[j] = door[i]; } } for (int j = mid; j < high; j++) { if(open[j] != -1) { S[j] = open[j]; } else { S[j] = 1-door[i]; } } ans = tryCombination(S); if(ans > i || ans == -1) { high = mid; mid = (low + high) / 2; } else { low = mid; mid = (low + high) / 2; } } open[mid] = door[i]; target[mid] = i; } answer(open, target); }
#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...