#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
mt19937 rng(69420);
int HC(int N){
int l=1, r=N;
while (l<=r){
int mid=(l+r)>>1;
if (l==r) return mid;
int m1=(l+r)>>1, m2=(l+r+1)>>1;
if (m1==m2) --m1, ++m2;
Guess(m1);
int t=Guess(m2);
if (!t) return mid;
if (r-l+1<=3){
if (t==1) return r;
return l;
}
if (r-l+1==4){
if (t==1){
if (Guess(r)==1) return r;
return r-1;
}else{
if (Guess(l)==1) return l;
return l+1;
}
}
if (r-l+1==5){
// 1 2 3 4 5
// ask 2 4
if (t==1){
if (Guess(r)==1) return r;
return r-1;
}else{
Guess(l+1);
if (Guess(l)==1) return l;
return l+1;
}
}
if (t==1){
l=m2;
int t=Guess(r);
mid=(l+r)>>1;
if (!t) return mid;
if (t==1) l=mid+1;
else r=mid;
}else{
r=m2;
int t=-Guess(l);
mid=(l+r)>>1;
if (!t) return mid;
if (t==1) l=mid+1, r=m1;
else r=mid;
}
}
return -1;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
6744 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
17 ms |
6748 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
6744 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
381 ms |
8020 KB |
Output is partially correct - alpha = 0.400000000000 |