# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1274242 | sakka | Mađioničar (COI22_madionicar) | C++20 | 492 ms | 424 KiB |
#include<bits/stdc++.h>
#define ll long long
#define fi first
#define sec second
#define pb push_back
#define pll pair<long long, long long>
using namespace std;
void freop(){
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
}
const ll INF = 1e18, mod = 1e9+7;
ll n, x;
void solve(){
cin >> n;
ll mx = 1;
for(ll i=1; i<=n; i++){
ll l = 1, r = min(i*2-1, (n-i)*2+1), cari = -1;
if(r % 2 == 0) r--;
while(l<=r){
ll mid = (l+r)/2; if(mid % 2 == 0) mid++;
cout << "? " << i-mid/2 << " " << i+mid/2 << endl;
int ans; cin >> ans;
if(ans){
l = mid + 2;
cari = mid;
}
else r = mid-2;
}
// cout << "cari " << i << " " << cari << endl;
mx = max(mx, cari);
}
for(ll i=1; i<=n-1; i++){
ll l=2, r=min(i*2, (n-i)*2), cari = -1;
if(r&1) r--;
while(l<=r){
ll mid = (l+r)/2; if(mid & 1) mid++;
cout << "? " << i-mid/2+1 << " " << i+mid/2 << endl;
int ans; cin >> ans;
if(ans){
l = mid+2;
cari = mid;
}
else r = mid-2;
}
mx = max(mx, cari);
}
cout << "! " << mx << endl;
}
int main(){
ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
// freop();
solve();
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |