#include <bits/stdc++.h>
#include "popa.h"
#pragma GCC optimize("O3")
using namespace std;
#define ll int
#define pb push_back
#define fr first
#define sc second
#define MAX ((ll)(1e12+100))
#define MX ((ll)(1e6+100))
#define ARRS ((ll)(2e6+100))
#define HS ((ll)(233))
#define MOD ((ll)(1e9+7))
#define EP ((double)(1e-9))
#define LG 21
#define mul(a,b) a=((a)*(b))%MOD
using namespace std;
int l[1020], r[1020];
int n, now;
void root()
{
int p = now - 1;
int rt = now;
now ++;
while(now < n && query(p, now, p, p))
{
if(query(rt, now, now, now))
{
l[now] = rt;
rt = now;
now ++;
} else
root();
}
r[p] = rt;
}
int solve(int NN, int* L, int* R)
{
n = NN;
for(int i = 0; i < n; ++ i)
l[i] = r[i] = -1;
int rt = 0;
now = 1;
while(now < n)
{
if(query(rt, now, now, now))
{
l[now] = rt;
rt = now;
now ++;
continue;
}
root();
}
for(int i = 0; i < n; ++ i)
L[i] = l[i], R[i] = r[i];
return rt;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
248 KB |
Output is correct |
2 |
Correct |
18 ms |
308 KB |
Output is correct |
3 |
Correct |
13 ms |
384 KB |
Output is correct |
4 |
Correct |
7 ms |
460 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
123 ms |
528 KB |
Output is correct |
2 |
Correct |
115 ms |
636 KB |
Output is correct |
3 |
Correct |
41 ms |
640 KB |
Output is correct |
4 |
Correct |
80 ms |
640 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
23 ms |
640 KB |
too many queries |
2 |
Halted |
0 ms |
0 KB |
- |