제출 #1274718

#제출 시각아이디문제언어결과실행 시간메모리
1274718nickkumaMađioničar (COI22_madionicar)C++20
13 / 100
493 ms404 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define int long long int n; bool ask(int i, int sz){ int resp; cout << "? " << i << ' ' << i+sz-1 << '\n' << flush; cin >> resp; return resp==1; } void sol(){ cin >> n; //even sized palindromes int ans=1; bool found=0; int sz=2; do{ found=0; for(int i=1;i<=n-sz+1;i++){ if(ask(i,sz)){ found=1; ans=max(ans,sz); while(1<=i-1 && sz+2<=n && i+sz<=n){ //expand palin i--; sz+=2; if(ask(i,sz))ans=max(ans,sz); else break; } } } sz+=2; }while(found && sz<=n); //odd sized palindromes sz=3; do{ found=0; for(int i=1;i<=n-sz+1;i++){ if(ask(i,sz)){ found=1; ans=max(ans,sz); while(1<=i-1 && sz+2<=n && i+sz<=n){ //expand palin i--; sz+=2; if(ask(i,sz)) ans=max(ans,sz); else break; } } } sz+=2; }while(found && sz<=n); cout << "! " << ans << '\n' << flush; return; } signed main(){ int tc=1; // cin >> tc; while(tc--) sol(); 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...