#include <bits/stdc++.h>
#define N 200001
#define pb push_back
using namespace std;
int h[N],pre[N];
unordered_map<int,vector<int> >v[N];
vector<int>day[N];
void init(int n,int d, int H[]){
for(int i=0;i<n;i++) h[i]=H[i];
}
void curseChanges(int u, int A[], int B[]){
for(int i=1;i<=u;i++){
int a=A[i-1],b=B[i-1];
day[a].pb(i);
day[b].pb(i);
if(pre[a]==0){
v[a][i].pb(b);
pre[a]=i;
}
else{
bool flag=0;
for(int j:v[a][pre[a]]){
if(j==b){
flag=1;
continue;
}
v[a][i].pb(j);
}
if(flag==0) v[a][i].pb(b);
pre[a]=i;
}
if(pre[b]==0){
v[b][i].pb(a);
pre[b]=i;
}
else{
bool flag=0;
for(int j:v[b][pre[b]]){
if(j==a){
flag=1;
continue;
}
v[b][i].pb(j);
}
if(flag==0) v[b][i].pb(a);
pre[b]=i;
}
}
}
int question(int x, int y, int z) {
int ans=1e9;
int id=upper_bound(day[x].begin(),day[x].end(),z)-day[x].begin();
--id;
if(id<0){
return ans;
}
int a=day[x][id];
id=upper_bound(day[y].begin(),day[y].end(),z)-day[y].begin();
--id;
if(id<0){
return ans;
}
int b=day[y][id];
// cout << a << ' ' << b << '\n';
if(v[x][a].size()==0 || v[y][b].size()==0){
return ans;
}
vector<int>xx,yy;
for(int V:v[y][b]){
yy.pb(h[V]);
}
sort(yy.begin(),yy.end());
for(int U:v[x][a]){
int id=lower_bound(yy.begin(),yy.end(),h[U])-yy.begin();
ans=min(ans,abs(h[U]-yy[max(0,id-1)]));
int r=yy.size()-1;
ans=min(ans,abs(yy[min(id,r)]-h[U]));
}
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
15980 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
16236 KB |
Output is correct |
2 |
Correct |
13 ms |
16236 KB |
Output is correct |
3 |
Correct |
13 ms |
16236 KB |
Output is correct |
4 |
Correct |
27 ms |
17516 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
566 ms |
60468 KB |
Output is correct |
2 |
Correct |
563 ms |
60448 KB |
Output is correct |
3 |
Correct |
638 ms |
72172 KB |
Output is correct |
4 |
Runtime error |
1152 ms |
262148 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
544 ms |
60488 KB |
Output is correct |
2 |
Runtime error |
1270 ms |
262148 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
65 ms |
18412 KB |
Output is correct |
2 |
Correct |
91 ms |
18668 KB |
Output is correct |
3 |
Correct |
129 ms |
18796 KB |
Output is correct |
4 |
Correct |
691 ms |
25468 KB |
Output is correct |
5 |
Correct |
619 ms |
24172 KB |
Output is correct |
6 |
Correct |
118 ms |
19052 KB |
Output is correct |
7 |
Correct |
544 ms |
23916 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
15980 KB |
Output is correct |
2 |
Correct |
13 ms |
16236 KB |
Output is correct |
3 |
Correct |
13 ms |
16236 KB |
Output is correct |
4 |
Correct |
13 ms |
16236 KB |
Output is correct |
5 |
Correct |
27 ms |
17516 KB |
Output is correct |
6 |
Correct |
566 ms |
60468 KB |
Output is correct |
7 |
Correct |
563 ms |
60448 KB |
Output is correct |
8 |
Correct |
638 ms |
72172 KB |
Output is correct |
9 |
Runtime error |
1152 ms |
262148 KB |
Execution killed with signal 9 (could be triggered by violating memory limits) |
10 |
Halted |
0 ms |
0 KB |
- |