제출 #1275115

#제출 시각아이디문제언어결과실행 시간메모리
1275115rana_azkaMađioničar (COI22_madionicar)C++20
13 / 100
387 ms1324 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int INF = 1e18; const int MOD = 1e9+7; const int MAXN = 2e5; int n, m; bool query(int l, int r){ cout << "? " << l << ' ' << r << endl; bool jury; cin >> jury; return jury; } bool cek(int target){ for(int i = 1; i <= n - target + 1; i++){ if(query(i, i + target - 1)) return 1; } return 0; } void solve(){ cin >> n; vector<int> odd, even; for(int i = 1; i <= n; i++){ if(i % 2) odd.push_back(i); else even.push_back(i); } int cnt = 0; int ans = 0; int left = 0, right = odd.size(); right--; int mid; while(left <= right){ mid = (left + right) / 2; if(cek(odd[mid])){ ans = max(odd[mid], ans); left = mid + 1; }else{ right = mid - 1; } cnt++; if(n > 7500 && cnt <= 20){ cout << "MASUK" << endl; return ; } } left = 0; right = even.size(); right--; mid = 0; while(left <= right){ mid = (left + right) / 2; if(cek(even[mid])){ ans = max(even[mid], ans); left = mid + 1; }else{ right = mid - 1; } } cout << "! " << ans << endl; } int32_t main(){ // ios_base::sync_with_stdio(0); // cin.tie(0); cout.tie(0); int tc = 1; // cin >> tc; while(tc--){ solve(); } 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...