Submission #1236120

#TimeUsernameProblemLanguageResultExecution timeMemory
1236120amine_arouaPark (JOI17_park)C++20
10 / 100
274 ms576 KiB
#include "park.h" #include<bits/stdc++.h> using namespace std; static int Place[1400]; void Detect(int T, int N) { vector<int> all(N); iota(all.begin() , all.end() , 0); stable_sort(all.begin() , all.end() , [N](int a , int b){ if(a == b) return 0; if(a == 0) return 1; // a in path 0--b if(b == 0) return 0; for(int i = 0 ; i < N ; i++) Place[i] = 1; Place[a] = 0; // cout<<a<<" "<<b<<'\n'; int ret = (1 - Ask(0 , b , Place)); // cout<<a<<" "<<b<<" "<<ret<<'\n'; return ret; }); // for(int i = 0 ; i < N ; i++) // cout<<all[i]<<" "; // cout<<'\n'; Answer(0 , all[1]); for(int i = 2 ; i < N ; i++) { int l = 0 , r = i; while(l + 1 < r) { int md = (l + r)>>1; for(int j = 0 ; j < N ; j++) Place[j] = 1; for(int j = md ; j < i ; j++) Place[all[j]] = 0; assert(Place[0] == 1 && Place[all[i]] == 1); bool check = Ask(0 , all[i] , Place); if(check) r = md; else l = md; } // cerr<<l<<" "<<i<<'\n'; int a = all[i] , b = all[l]; if(a > b) swap(a , b); Answer(a , b); } }
#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...