답안 #850233

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
850233 2023-09-16T07:47:10 Z 1075508020060209tc Mađioničar (COI22_madionicar) C++14
38 / 100
1339 ms 28780 KB
#include<bits/stdc++.h>
using namespace std;
//#define int long long
map<pair<int,int>,int>mp;
map<pair<int,int>,int>vis;
int cnt=0;
int ask(int l,int r){
if(l==r){return 1;}
if(vis[{l,r}]){return mp[{l,r}];}
cnt++;
if(cnt==200001){
cout<<"! "<<7777777<<endl;
exit(12345); }
cout<<"? "<<l<<" "<<r<<endl;
int ret;
vis[{l,r}]=1;
cin>>ret;
mp[{l,r}]=ret;
return ret;
}
int n;
int rpl[300005];
int rask(int l,int r){
if(l==r){return 1;}
if(l%2==1){l++;}
if(r%2==1){r--;}
if(l==r){return 1;}
l=(l+1)/2;r=(r+1)/2;
return ask(l,r);
}

int par[300005];
//*#a#a#a#b#

signed main(){
cin>>n;

int l=1;int r=1;
par[1]=1;
for(int i=2;i<=n+n+1;i++){
    if(r<i){
        par[i]=0;int lit=i;int rit=i;
        while(lit>=1&&rit<=n+n+1&&rask(lit,rit)==1){lit--;rit++;par[i]++;}
    }else{
        par[i]=min(r-i+1,par[l+(r-i+1)-1]);
        int lit=i-par[i];int rit=i+par[i];
        while(lit>=1&&rit<=n+n+1&&rask(lit,rit)==1){lit--;rit++;par[i]++;}
    }
    if(i+par[i]-1>r){
        r=i+par[i]-1;
        l=i-par[i]+1;
    }
}
int ans=0;
for(int i=1;i<=n+n+1;i++){
    ans=max(ans,par[i]);
}
cout<<"! "<<ans-1<<endl;


}
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 4104 KB Output is correct
2 Correct 85 ms 3220 KB Output is correct
3 Correct 80 ms 2964 KB Output is correct
4 Correct 126 ms 3920 KB Output is correct
5 Correct 124 ms 3968 KB Output is correct
6 Correct 124 ms 3644 KB Output is correct
7 Correct 125 ms 3372 KB Output is correct
8 Correct 120 ms 3988 KB Output is correct
9 Correct 131 ms 3376 KB Output is correct
10 Correct 82 ms 3128 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 4104 KB Output is correct
2 Correct 85 ms 3220 KB Output is correct
3 Correct 80 ms 2964 KB Output is correct
4 Correct 126 ms 3920 KB Output is correct
5 Correct 124 ms 3968 KB Output is correct
6 Correct 124 ms 3644 KB Output is correct
7 Correct 125 ms 3372 KB Output is correct
8 Correct 120 ms 3988 KB Output is correct
9 Correct 131 ms 3376 KB Output is correct
10 Correct 82 ms 3128 KB Output is correct
11 Correct 1210 ms 27940 KB Output is correct
12 Correct 770 ms 20732 KB Output is correct
13 Correct 808 ms 19552 KB Output is correct
14 Correct 1265 ms 27692 KB Output is correct
15 Correct 822 ms 21092 KB Output is correct
16 Correct 1339 ms 27360 KB Output is correct
17 Correct 1285 ms 28420 KB Output is correct
18 Correct 1126 ms 25752 KB Output is correct
19 Correct 1170 ms 27364 KB Output is correct
20 Correct 956 ms 23696 KB Output is correct
21 Correct 832 ms 22068 KB Output is correct
22 Correct 878 ms 20388 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1249 ms 28780 KB Execution failed because the return code was nonzero
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 4104 KB Output is correct
2 Correct 85 ms 3220 KB Output is correct
3 Correct 80 ms 2964 KB Output is correct
4 Correct 126 ms 3920 KB Output is correct
5 Correct 124 ms 3968 KB Output is correct
6 Correct 124 ms 3644 KB Output is correct
7 Correct 125 ms 3372 KB Output is correct
8 Correct 120 ms 3988 KB Output is correct
9 Correct 131 ms 3376 KB Output is correct
10 Correct 82 ms 3128 KB Output is correct
11 Correct 1210 ms 27940 KB Output is correct
12 Correct 770 ms 20732 KB Output is correct
13 Correct 808 ms 19552 KB Output is correct
14 Correct 1265 ms 27692 KB Output is correct
15 Correct 822 ms 21092 KB Output is correct
16 Correct 1339 ms 27360 KB Output is correct
17 Correct 1285 ms 28420 KB Output is correct
18 Correct 1126 ms 25752 KB Output is correct
19 Correct 1170 ms 27364 KB Output is correct
20 Correct 956 ms 23696 KB Output is correct
21 Correct 832 ms 22068 KB Output is correct
22 Correct 878 ms 20388 KB Output is correct
23 Runtime error 1249 ms 28780 KB Execution failed because the return code was nonzero
24 Halted 0 ms 0 KB -