Submission #1274440

#TimeUsernameProblemLanguageResultExecution timeMemory
1274440altern23Mađioničar (COI22_madionicar)C++20
0 / 100
1 ms408 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define pii pair<ll, ll>
#define fi first
#define sec second
#define ld long double

const int MAXN = 2e5;
const ll INF = 1e18;
const int MOD = 1e9 + 7;

void add(ll &a, ll b) { a = (a + b) % MOD; }
void sub(ll &a, ll b) { a = (a - b + MOD) % MOD; }
void mul(ll &a, ll b) { a = a * b % MOD; }

int main(){
	// ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int tc = 1;	
	// cin >> tc;
	for(;tc--;){
		ll N; cin >> N;
		
		auto query = [&](ll l, ll r){
			cout << "? " << l << " " << r << endl;
			ll x; cin >> x;
			return x;
		};
		
		ll lf = 1, rg = 3, odd = 1, even = 0;
		for(;rg <= N;){
			while(rg <= N && query(lf, rg)){
				lf--, rg++;
				odd += 2;
			}
			lf++, rg++;
		}
		
		lf = 1, rg = 2;
		for(;rg <= N;){
			while(rg <= N && query(lf, rg)){
				lf--, rg++;
				even += 2;
			}
			lf++, rg++;
		}
		
		cout << "! " << max(odd, even) << endl;
	}
}	

/*

*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...