Submission #1165239

#TimeUsernameProblemLanguageResultExecution timeMemory
1165239ty_mxzhnCave (IOI13_cave)C++20
100 / 100
196 ms548 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin() , x.end(); #define sz(x) (int)x.size(); void exploreCave(int N) { int S[N] , D[N] , query[N] = {0} , vis[N] = {0}; for(int i = 0;i<N;i++){// door number for(int j = 0;j<N;j++){ if(vis[j])continue; query[j] = 0; } // cout << "door number : " << i << endl; // cout << "asking : ";for(int j = 0;j<N;j++)cout << query[j] << " ";cout << endl; bool bl = tryCombination(query) == i; // cout << "bl : " << bl << endl; // 0 da kapali oluosa bl = true , 1 de kapali oluosa bl = false // yani kapi bl de acik , !bl de kapali olur int l = 0 , r = N-1; while(l < r){ int mid = (l + r) / 2; // sol tarafi !bl yap , eger i de duruosak i soldadir for(int j = l;j<=mid;j++){ if(vis[j])continue; query[j] = !bl; } for(int j = mid+1;j<=r;j++){ if(vis[j])continue; query[j] = bl; } // cout << "range : " << l << " " << mid << " " << r << endl; // cout << "asking : ";for(int j = 0;j<N;j++)cout << query[j] << " ";cout << endl; // cout << "result : " << tryCombination(query) << endl; if(tryCombination(query) == i){ // cout << "left" << endl; r = mid; } else { // cout << "right" << endl; l = mid+1; } } // cout << "l : " << l << endl; D[l] = i; S[l] = bl; query[l] = bl; vis[l] = 1; // cout << endl; } 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...