#include <bits/stdc++.h>
#define ll int
#define pb push_back
#define fi first
#define sc second
#define pll pair<ll,ll>
#define endl '\n'
#define all(a) a.begin(),a.end()
#define llinf 1000000000
#define si(a) (ll)(a.size())
#define ceri(a,l,r) {cerr<<#a<<": ";for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;}
#define cer(a) {cerr<<#a<<": ";for(ll x_ : a) cerr<<x_<< " ";cerr<<endl;}
using namespace std;
#define maxn 200005
ll n,d,m;
ll a[maxn];
void init(int N, int D, int H[]) {
n = N;
d = D;
for(ll i = 1;i<=n;i++){
a[i] = H[i-1];
}
}
vector<pll> v[maxn];
vector<vector<ll> > w[maxn];
ll c = 50;
bool tu[maxn];
void curseChanges(int U, int A[], int B[]) {
m = U;
for(ll i = 1;i<=n;i++) w[i].pb({});
for(ll i = 1;i<=m;i++){
ll x = A[i-1],y = B[i-1];
x++; y++;
v[x].pb({i,y});
v[y].pb({i,x});
if(si(v[x])%c==0){
vector<ll> ans;
ll e = si(w[x])-1;
for(ll z : w[x][e]) tu[z] = 1;
for(ll i = e*c;i<si(v[x]);i++){
ll y = v[x][i].sc;
tu[y]^=1;
}
for(ll z : w[x][e]) if(tu[z]) ans.pb(z),tu[z] = 0;
for(ll i = e*c;i<si(v[x]);i++){
ll y = v[x][i].sc;
if(tu[y]) ans.pb(y),tu[y] = 0;
}
for(ll x : ans) tu[x] = 0;
w[x].pb(ans);
}
swap(x,y);
if(si(v[x])%c==0){
vector<ll> ans;
ll e = si(w[x])-1;
for(ll z : w[x][e]) tu[z] = 1;
for(ll i = e*c;i<si(v[x]);i++){
ll y = v[x][i].sc;
tu[y]^=1;
}
for(ll z : w[x][e]) if(tu[z]) ans.pb(z),tu[z] = 0;
for(ll i = e*c;i<si(v[x]);i++){
ll y = v[x][i].sc;
if(tu[y]) ans.pb(y),tu[y] = 0;
}
for(ll x : ans) tu[x] = 0;
w[x].pb(ans);
}
}
}
bool cmp(ll x,ll y){return a[x]<a[y];}
vector<ll> vx,vy;
ll reshi(vector<ll> c,vector<ll> b){
ll j = 0;
ll ans = llinf;
for(ll i = 0;i<si(c);i++){
while(j<=si(b)-1&&a[b[j]]<a[c[i]]) j++;
if(j==si(b)) break;
ans = min(ans,a[b[j]]-a[c[i]]);
}
return ans;
}
vector<ll> get(ll x,ll j){
ll l = 0,r = si(v[x])-1,rez = -1,mid;
while(l<=r){
mid = (l+r)/2;
if(v[x][mid].fi<=j) rez = mid,l = mid+1;
else r = mid-1;
}
vector<ll> ans;
ll e = (rez+1)/c;
for(ll z : w[x][e]) tu[z] = 1;
for(ll i = e*c;i<=rez;i++){
ll y = v[x][i].sc;
tu[y]^=1;
}
for(ll z : w[x][e]) if(tu[z]) ans.pb(z),tu[z] = 0;
for(ll i = e*c;i<=rez;i++){
ll y = v[x][i].sc;
if(tu[y]) ans.pb(y),tu[y] = 0;
}
for(ll x : ans) tu[x] = 0;
return ans;
}
int question(int x, int y, int j) {
x++; y++;
vx.clear();
vy.clear();
vx = get(x,j);
vy = get(y,j);
sort(all(vx),cmp);
sort(all(vy),cmp);
return min(reshi(vx,vy),reshi(vy,vx));
}
/**
6 5 11 4
2 42 1000 54 68 234
0 1
2 0
3 4
3 5
3 5
1 3
5 3
0 5
3 0
1 3
3 5
0 3 4 26
3 0 8 0
0 5 5 1000000000
3 0 11 14
*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9680 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
6 ms |
9680 KB |
Output is correct |
2 |
Correct |
8 ms |
9688 KB |
Output is correct |
3 |
Correct |
6 ms |
9680 KB |
Output is correct |
4 |
Correct |
30 ms |
13728 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
178 ms |
21596 KB |
Output is correct |
2 |
Correct |
200 ms |
21500 KB |
Output is correct |
3 |
Correct |
167 ms |
19464 KB |
Output is correct |
4 |
Correct |
1663 ms |
19908 KB |
Output is correct |
5 |
Correct |
367 ms |
17200 KB |
Output is correct |
6 |
Execution timed out |
3041 ms |
26348 KB |
Time limit exceeded |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
175 ms |
21488 KB |
Output is correct |
2 |
Correct |
1388 ms |
26272 KB |
Output is correct |
3 |
Correct |
748 ms |
23620 KB |
Output is correct |
4 |
Correct |
1450 ms |
26456 KB |
Output is correct |
5 |
Correct |
259 ms |
22092 KB |
Output is correct |
6 |
Correct |
1567 ms |
26524 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
52 ms |
10448 KB |
Output is correct |
2 |
Correct |
103 ms |
10380 KB |
Output is correct |
3 |
Correct |
165 ms |
10472 KB |
Output is correct |
4 |
Correct |
1018 ms |
10708 KB |
Output is correct |
5 |
Correct |
1008 ms |
10824 KB |
Output is correct |
6 |
Correct |
125 ms |
10108 KB |
Output is correct |
7 |
Correct |
831 ms |
10516 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9680 KB |
Output is correct |
2 |
Correct |
6 ms |
9680 KB |
Output is correct |
3 |
Correct |
8 ms |
9688 KB |
Output is correct |
4 |
Correct |
6 ms |
9680 KB |
Output is correct |
5 |
Correct |
30 ms |
13728 KB |
Output is correct |
6 |
Correct |
178 ms |
21596 KB |
Output is correct |
7 |
Correct |
200 ms |
21500 KB |
Output is correct |
8 |
Correct |
167 ms |
19464 KB |
Output is correct |
9 |
Correct |
1663 ms |
19908 KB |
Output is correct |
10 |
Correct |
367 ms |
17200 KB |
Output is correct |
11 |
Execution timed out |
3041 ms |
26348 KB |
Time limit exceeded |
12 |
Halted |
0 ms |
0 KB |
- |