Submission #642396

#TimeUsernameProblemLanguageResultExecution timeMemory
642396tolbiColors (BOI20_colors)C++17
0 / 100
1 ms208 KiB
#define author tolbi #pragma optimize("Bismillahirrahmanirrahim") #include <bits/stdc++.h> #define int long long #define vint(x) vector<int> x #define deci(x) int x;cin>>x; #define decstr(x) string x;cin>>x; #define cinarr(x) for (auto &it : x) cin>>it; #define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl; #define sortarr(x) sort(x.begin(),x.end()) #define sortrarr(x) sort(x.rbegin(),x.rend()) #define ayahya() chrono::steady_clock().now().time_since_epoch().count() #define det(x) cout<<"NO\0YES"+x*3<<endl; #define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define tol(bi) (1LL<<bi) const int MOD = 1e9+7; using namespace std; int N; bool submitmode=true; void prepare(); int ask(int n); void final(); int32_t main(){ int t=1; int tno = 0; if (!t) cin>>t; while (t-(tno++)){ map<int,bool> mp; prepare(); int n = N; if (n==1){ cout<<"= "<<1<<endl; final(); break; } else if (n==2){ int noting = ask(1); int somting = ask(2); if (somting){ cout<<"= 1"<<endl; } else cout<<"= 2"<<endl; final(); break; } int l = 1, r = n; int crr = (n-(l+(r-l)/2))/2+1; ask(crr); int mv = 0; while (l < r){ int mid = l+(r-l)/2; if (mv){ mid*=-1; } if (mid>0) { bool hueh=false; while (crr+mid>n || mp[crr+mid]) { mid--; if (mid+crr<1){ hueh=true; int mid = -(l+(r-l)/2); break; } } while (hueh && (crr+mid<1 || mp[crr+mid])) { mid++; } } else { bool hueh=false; while (crr+mid<1 || mp[crr+mid]) { if (!mp[crr+mid]){ mp.erase(crr+mid); } mid++; if (mid+crr>n){ hueh=true; int mid = (l+(r-l)/2); break; } } while (hueh && (crr+mid>n || mp[crr+mid])) { mid--; } } mp[crr+mid]=true; if (ask(crr+mid)){ if (mv) r=min(r,-mid); else r=min(r,mid); } else { if (mv) l=max(-mid+1,l); else l=max(l,mid+1); } crr+=mid; mv^=1; } cout<<"= "<<l<<endl; final(); } } int c; int last=ayahya(); vector<bool> v; int qc=0; int ask(int n){ if (submitmode){ cout<<"? "<<n<<endl; deci(rv); return rv; } else { if (n>N || n<1 || v[n]){ cout<<n<<" "<<"LKAJSDLKASJDKLASDJKLASDHKJLSADHKLASJDHASKJDNASKLJDNASLKJDNKALJSDNK"<<endl; } v[n]=true; qc++; cout<<"? "<<n<<endl; bool rv = (abs(last-n)>=c); cout<<rv<<endl; last=n; return rv; } } void prepare(){ if (submitmode){ cin>>N; } else { N=26; v.resize(N+1,false); c=24; cout<<N<<endl; } } void final(){ if (submitmode) return; cout<<"Answer = "<<c<<endl; cout<<"Query Count = "<<qc<<endl; }

Compilation message (stderr)

Colors.cpp:2: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    2 | #pragma optimize("Bismillahirrahmanirrahim")
      | 
Colors.cpp: In function 'int32_t main()':
Colors.cpp:37:8: warning: unused variable 'noting' [-Wunused-variable]
   37 |    int noting = ask(1);
      |        ^~~~~~
Colors.cpp:61:11: warning: unused variable 'mid' [-Wunused-variable]
   61 |       int mid = -(l+(r-l)/2);
      |           ^~~
Colors.cpp:78:11: warning: unused variable 'mid' [-Wunused-variable]
   78 |       int mid = (l+(r-l)/2);
      |           ^~~
#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...