#include <bits/stdc++.h>
#include "cycle.h"
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pi;
typedef vector <ll> vi;
typedef vector <pi> vpi;
#define f first
#define s second
#define FOR(i,s,e) for(ll i=s;i<=ll(e);++i)
#define DEC(i,s,e) for(ll i=s;i>=ll(e);--i)
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define lbd(x, y) lower_bound(all(x), y)
#define ubd(x, y) upper_bound(all(x), y)
#define aFOR(i,x) for (auto i: x)
#define mem(x,i) memset(x,i,sizeof x)
#define fast ios_base::sync_with_stdio(false),cin.tie(0)
int cur = 0;
int N;
unordered_map <int,bool> memo,vis;
bool qry(int a, bool jumping){
//set cur to a
if (vis[a] && !jumping){
//cout<<a<<' ';
return memo[a];
}
bool res = jump((a - cur + N) % N);
cur = a;
vis[a] = 1;
memo[a] = res;
return res;
}
void check(int x){
if (!qry(x+1,0)){
qry(x, 1);
}else{
qry(x + N/2, 1);
}
}
void escape(int n) {
N = n;
if (N == 2){
jump(1);
return;
}
int l = 0; int r = N - 1;
bool f = qry(0,0);
while (l+1 < r){
int mid = (l+r)/2;
if (qry(mid,0) == f){
if (mid >= N/2) r = mid;
else l = mid;
}
else l = mid;
}
if (qry(l,0) && qry(l+1,0)) l++;
else if (!qry(l,0) && qry(l+1,0)) l++;
else if (!qry(l,0) && !qry(l+1,0))l--;
check(l);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
256 KB |
The exit was not found. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
256 KB |
Output is correct |
2 |
Correct |
5 ms |
384 KB |
Output is correct |
3 |
Correct |
5 ms |
384 KB |
Output is correct |
4 |
Correct |
5 ms |
384 KB |
Output is correct |
5 |
Correct |
4 ms |
256 KB |
Output is correct |
6 |
Correct |
5 ms |
384 KB |
Output is correct |
7 |
Correct |
5 ms |
384 KB |
Output is correct |
8 |
Correct |
4 ms |
384 KB |
Output is correct |
9 |
Correct |
5 ms |
384 KB |
Output is correct |
10 |
Correct |
5 ms |
384 KB |
Output is correct |
11 |
Correct |
5 ms |
256 KB |
Output is correct |
12 |
Correct |
4 ms |
384 KB |
Output is correct |
13 |
Correct |
5 ms |
384 KB |
Output is correct |
14 |
Correct |
5 ms |
384 KB |
Output is correct |
15 |
Correct |
5 ms |
512 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
256 KB |
The exit was not found. |
2 |
Halted |
0 ms |
0 KB |
- |