Submission #503463

#TimeUsernameProblemLanguageResultExecution timeMemory
503463devomega07Colors (BOI20_colors)C++14
0 / 100
1 ms200 KiB
#include "bits/stdc++.h" #define all(x) x.begin(),x.end() #define int long long //#define OSET using namespace std; #ifdef OSET #include "C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++\ext\pb_ds\assoc_container.hpp" #include "C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++\ext\pb_ds\tree_policy.hpp" using namespace __gnu_pbds; template<typename T> using oset = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; #endif int n; inline void IO(int num, bool &verd){ cout << "? " << num << endl; int numbb; cin >> numbb; verd = numbb; return; } inline int get(int prev, int diff, bool verdict){ return (prev+diff)%(n+1); } //#define debug signed main(){ ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); cin >> n; bool temp; IO(1,temp); int numb = 63; int prev = 1, low = 1, high = n, mid = (high+low)>>1; bool verdict=0; int best=-1; while(numb--){ mid=(high+low+1)>>1; #ifdef debug cout << "Searching if he will notice " << mid << '\n'; #endif int col = get(prev,mid,verdict); if(mid==best){ cout << "= " << mid << endl; return 0; } IO(col,verdict); #ifdef debug cout << boolalpha << verdict << '\n'; #endif if(verdict) high = mid-1, best=mid; else low = mid+1; prev = col; } return 0; }
#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...