제출 #864138

#제출 시각아이디문제언어결과실행 시간메모리
864138UnforgettableplMađioničar (COI22_madionicar)C++17
100 / 100
1114 ms596 KiB
//#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") /* ID: samikgo1 TASK: wormhole LANG: C++ */ #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> pll; #define all(x) x.begin(),x.end() #define allr(x) x.rbegin(),x.rend() //#define f first //#define s second //#define x first //#define y second const int INF = 1e9; const ll modulo = 1e9 + 7; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_pbds; //#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> #define int ll int n; bool check(int l,int r){ if(l<1 or r>n)return false; cout << "? " << l << ' ' << r << endl; int a;cin>>a; return a==1; } int bin_search(int l,int r){ if(!check(l,r))return 0; while(true){ if(check(l-1,r+1)){l--;r++;} else break; } return r-l+1; } void solve(){ cin>>n; int ans = 1; for(int i=1;i<=n;i++){ ans = max(ans, bin_search(i-ans/2,i+1+ans/2)); ans = max(ans, bin_search(i-ans/2-(ans%2),i+ans/2+(ans%2))); } cout << "! " << ans << '\n'; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); // int t; // cin >> t; // while(t--) // for(int i=1;i<=1000;i++){ // if(encode2(i)>110)cout << i << ' '; // } // cout << endl; solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...