#include <bits/stdc++.h>
#define f first
#define s second
#define sz(x) (int)(x).size()
#define pb push_back
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define vec vector
#define pw(x) (1LL<<(x))
#define m_p make_pair
#define fast_iati ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
template <class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);}
template <class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);}
typedef long long ll;
typedef pair<int,int> pii;
const int N=3e5+100;
struct segtree{
map<int,int> st[4*N];
void add(int l,int r,int tp,int x,int v,int tl,int tr){
if(tl>=l&&tr<=r){
if(tp)
st[v][x]++;
else{
st[v][x]--;
if(!st[v][x]) st[v].erase(x);
}
return;
}
if(tl>r||tr<l) return;
int tm=(tl+tr)>>1;
add(l,r,tp,x,2*v,tl,tm);add(l,r,tp,x,2*v+1,tm+1,tr);
}
int get(int id,int v,int tl,int tr){
int ans=-1e9;
if(sz(st[v])) ans=st[v].rbegin()->f;
if(tl==tr){
return ans;
}
int tm=(tl+tr)>>1;
if(tm>=id)
return max(ans,get(id,2*v,tl,tm));
else
return max(ans,get(id,2*v+1,tm+1,tr));
}
}lft,rgt;
vec<int> kek;
int gl(int x){
return upper_bound(all(kek),x)-kek.begin()-1;
}
int gu(int x){
return upper_bound(all(kek),x)-kek.begin();
}
void add(int l,int r,int t){
if(l==r) return;
int mid=(l+r)>>1;
if(gl(mid)>=0)
lft.add(gl(l),gl(mid),t,-l,1,0,sz(kek)-1);
if(gl(mid)+1<=gl(r))
rgt.add(gl(mid)+1,gl(r),t,r,1,0,sz(kek)-1);
}
const int Nax=3e5+1;
multiset<int> st[N];
vec<int>here[N];
signed main(){
fast_iati;
int n,q,k;
cin>>n>>k>>q;
vec<array<int,3>>arr;
vec<int>x(n),a(n),b(n),t(n);
for(int i=0;i<n;i++){
cin>>x[i]>>t[i]>>a[i]>>b[i];
// x[i]=rand(),t[i]=rand()%k+1;
// a[i]=rand(),b[i]=rand();
// if(a[i]>b[i])
// swap(a[i],b[i]);
// kek.pb(x[i]);
arr.pb({a[i],0,i});
arr.pb({b[i]+1,-1,i});
--t[i];
here[t[i]].pb(i);
}
vec<int>l(q),y(q);
for(int i=0;i<q;i++){
cin>>l[i]>>y[i];
// l[i]=rand(),y[i]=rand();
kek.pb(l[i]);
arr.pb({y[i],2,i});
}
sort(all(kek));kek.erase(unique(all(kek)),kek.end());
sort(all(arr));
auto stupid=[&](array<int,3> z){
pii me={-1e9,0};
int tx=l[z[1]];
for(int j=0;j<k;j++){
if(sz(st[j])==2) continue;
//// cout<<"TYP "<<endl;
//// for(auto &z : st[j])
//// cout<<z<<' ';
//// cout<<endl
auto it=st[j].lower_bound(tx);
int omn=2e9;
if(it!=st[j].end()) umin(omn,*it-tx);
if(it!=st[j].begin()) umin(omn,tx-*prev(it));
umax(me.f,omn);me.s++;
}
return me;
};
auto solve=[&](array<int,3> z){
int x=l[z[1]];
x=gl(x);
int fe=lft.get(x,1,0,sz(kek)-1)+l[z[1]];
int si=rgt.get(x,1,0,sz(kek)-1)-l[z[1]];
return max(fe,si);
};
vec<int>cnt(k,0);
for(int i=0;i<k;i++){
add(-3e8,3e8,1);
st[i].insert(-3e8);
st[i].insert(3e8);
}
int total=0;
vec<int>ans(q,-1);
for(auto &z : arr){
swap(z[1],z[2]);
if(z[2]==2){
if(total!=k){
ans[z[1]]=-1;
continue;
}
int rio=solve(z);
ans[z[1]]=rio;
}
else if(z[2]==-1){
int i=z[1];
auto it=st[t[i]].lower_bound(x[i]);
add(x[i],*next(it),0);
add(*prev(it),x[i],0);
add(*prev(it),*next(it),1);
st[t[i]].erase(it);
cnt[t[i]]--;
if(!cnt[t[i]]) total--;
}
else{
int i=z[1];
if(!cnt[t[i]]) total++;
cnt[t[i]]++;
st[t[i]].insert(x[i]);
auto it=st[t[i]].lower_bound(x[i]);
add(*prev(it),*next(it),0);
add(x[i],*next(it),1);
add(*prev(it),x[i],1);
}
}
for(auto &z : ans)
cout<<z<<'\n';
return 0;
}
/*
4 2 4
3 1 1 10
9 2 2 4
7 2 5 7
4 1 8 10
5 3
5 6
5 9
1 10
2 1 3
1 1 1 4
1 1 2 6
1 3
1 5
1 7
1 1 1
100000000 1 1 1
1 1
*/
Compilation message
new_home.cpp: In function 'int main()':
new_home.cpp:96:10: warning: variable 'stupid' set but not used [-Wunused-but-set-variable]
96 | auto stupid=[&](array<int,3> z){
| ^~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
134184 KB |
Output is correct |
2 |
Correct |
60 ms |
134100 KB |
Output is correct |
3 |
Correct |
57 ms |
134084 KB |
Output is correct |
4 |
Correct |
57 ms |
134084 KB |
Output is correct |
5 |
Correct |
59 ms |
134152 KB |
Output is correct |
6 |
Correct |
60 ms |
134212 KB |
Output is correct |
7 |
Correct |
59 ms |
134344 KB |
Output is correct |
8 |
Correct |
59 ms |
134408 KB |
Output is correct |
9 |
Correct |
60 ms |
134400 KB |
Output is correct |
10 |
Correct |
61 ms |
134236 KB |
Output is correct |
11 |
Correct |
59 ms |
134240 KB |
Output is correct |
12 |
Correct |
60 ms |
134184 KB |
Output is correct |
13 |
Correct |
59 ms |
134236 KB |
Output is correct |
14 |
Correct |
59 ms |
134220 KB |
Output is correct |
15 |
Correct |
61 ms |
134320 KB |
Output is correct |
16 |
Correct |
59 ms |
134368 KB |
Output is correct |
17 |
Correct |
59 ms |
134212 KB |
Output is correct |
18 |
Correct |
63 ms |
134264 KB |
Output is correct |
19 |
Correct |
59 ms |
134360 KB |
Output is correct |
20 |
Correct |
58 ms |
134168 KB |
Output is correct |
21 |
Correct |
57 ms |
134304 KB |
Output is correct |
22 |
Correct |
67 ms |
134452 KB |
Output is correct |
23 |
Correct |
58 ms |
134312 KB |
Output is correct |
24 |
Correct |
59 ms |
134280 KB |
Output is correct |
25 |
Correct |
61 ms |
134276 KB |
Output is correct |
26 |
Correct |
59 ms |
134200 KB |
Output is correct |
27 |
Correct |
58 ms |
134252 KB |
Output is correct |
28 |
Correct |
58 ms |
134248 KB |
Output is correct |
29 |
Correct |
58 ms |
134240 KB |
Output is correct |
30 |
Correct |
57 ms |
134216 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
134184 KB |
Output is correct |
2 |
Correct |
60 ms |
134100 KB |
Output is correct |
3 |
Correct |
57 ms |
134084 KB |
Output is correct |
4 |
Correct |
57 ms |
134084 KB |
Output is correct |
5 |
Correct |
59 ms |
134152 KB |
Output is correct |
6 |
Correct |
60 ms |
134212 KB |
Output is correct |
7 |
Correct |
59 ms |
134344 KB |
Output is correct |
8 |
Correct |
59 ms |
134408 KB |
Output is correct |
9 |
Correct |
60 ms |
134400 KB |
Output is correct |
10 |
Correct |
61 ms |
134236 KB |
Output is correct |
11 |
Correct |
59 ms |
134240 KB |
Output is correct |
12 |
Correct |
60 ms |
134184 KB |
Output is correct |
13 |
Correct |
59 ms |
134236 KB |
Output is correct |
14 |
Correct |
59 ms |
134220 KB |
Output is correct |
15 |
Correct |
61 ms |
134320 KB |
Output is correct |
16 |
Correct |
59 ms |
134368 KB |
Output is correct |
17 |
Correct |
59 ms |
134212 KB |
Output is correct |
18 |
Correct |
63 ms |
134264 KB |
Output is correct |
19 |
Correct |
59 ms |
134360 KB |
Output is correct |
20 |
Correct |
58 ms |
134168 KB |
Output is correct |
21 |
Correct |
57 ms |
134304 KB |
Output is correct |
22 |
Correct |
67 ms |
134452 KB |
Output is correct |
23 |
Correct |
58 ms |
134312 KB |
Output is correct |
24 |
Correct |
59 ms |
134280 KB |
Output is correct |
25 |
Correct |
61 ms |
134276 KB |
Output is correct |
26 |
Correct |
59 ms |
134200 KB |
Output is correct |
27 |
Correct |
58 ms |
134252 KB |
Output is correct |
28 |
Correct |
58 ms |
134248 KB |
Output is correct |
29 |
Correct |
58 ms |
134240 KB |
Output is correct |
30 |
Correct |
57 ms |
134216 KB |
Output is correct |
31 |
Correct |
2441 ms |
180464 KB |
Output is correct |
32 |
Correct |
173 ms |
139656 KB |
Output is correct |
33 |
Correct |
967 ms |
146780 KB |
Output is correct |
34 |
Correct |
2358 ms |
157028 KB |
Output is correct |
35 |
Correct |
1879 ms |
171724 KB |
Output is correct |
36 |
Correct |
1012 ms |
154848 KB |
Output is correct |
37 |
Correct |
724 ms |
140884 KB |
Output is correct |
38 |
Correct |
534 ms |
139828 KB |
Output is correct |
39 |
Correct |
493 ms |
139016 KB |
Output is correct |
40 |
Correct |
475 ms |
139132 KB |
Output is correct |
41 |
Correct |
889 ms |
139540 KB |
Output is correct |
42 |
Correct |
918 ms |
139600 KB |
Output is correct |
43 |
Correct |
122 ms |
141996 KB |
Output is correct |
44 |
Correct |
867 ms |
139596 KB |
Output is correct |
45 |
Correct |
715 ms |
139312 KB |
Output is correct |
46 |
Correct |
580 ms |
139276 KB |
Output is correct |
47 |
Correct |
376 ms |
139104 KB |
Output is correct |
48 |
Correct |
347 ms |
139096 KB |
Output is correct |
49 |
Correct |
489 ms |
139072 KB |
Output is correct |
50 |
Correct |
709 ms |
139320 KB |
Output is correct |
51 |
Correct |
473 ms |
139100 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5065 ms |
397100 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5065 ms |
320268 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
134184 KB |
Output is correct |
2 |
Correct |
60 ms |
134100 KB |
Output is correct |
3 |
Correct |
57 ms |
134084 KB |
Output is correct |
4 |
Correct |
57 ms |
134084 KB |
Output is correct |
5 |
Correct |
59 ms |
134152 KB |
Output is correct |
6 |
Correct |
60 ms |
134212 KB |
Output is correct |
7 |
Correct |
59 ms |
134344 KB |
Output is correct |
8 |
Correct |
59 ms |
134408 KB |
Output is correct |
9 |
Correct |
60 ms |
134400 KB |
Output is correct |
10 |
Correct |
61 ms |
134236 KB |
Output is correct |
11 |
Correct |
59 ms |
134240 KB |
Output is correct |
12 |
Correct |
60 ms |
134184 KB |
Output is correct |
13 |
Correct |
59 ms |
134236 KB |
Output is correct |
14 |
Correct |
59 ms |
134220 KB |
Output is correct |
15 |
Correct |
61 ms |
134320 KB |
Output is correct |
16 |
Correct |
59 ms |
134368 KB |
Output is correct |
17 |
Correct |
59 ms |
134212 KB |
Output is correct |
18 |
Correct |
63 ms |
134264 KB |
Output is correct |
19 |
Correct |
59 ms |
134360 KB |
Output is correct |
20 |
Correct |
58 ms |
134168 KB |
Output is correct |
21 |
Correct |
57 ms |
134304 KB |
Output is correct |
22 |
Correct |
67 ms |
134452 KB |
Output is correct |
23 |
Correct |
58 ms |
134312 KB |
Output is correct |
24 |
Correct |
59 ms |
134280 KB |
Output is correct |
25 |
Correct |
61 ms |
134276 KB |
Output is correct |
26 |
Correct |
59 ms |
134200 KB |
Output is correct |
27 |
Correct |
58 ms |
134252 KB |
Output is correct |
28 |
Correct |
58 ms |
134248 KB |
Output is correct |
29 |
Correct |
58 ms |
134240 KB |
Output is correct |
30 |
Correct |
57 ms |
134216 KB |
Output is correct |
31 |
Correct |
2441 ms |
180464 KB |
Output is correct |
32 |
Correct |
173 ms |
139656 KB |
Output is correct |
33 |
Correct |
967 ms |
146780 KB |
Output is correct |
34 |
Correct |
2358 ms |
157028 KB |
Output is correct |
35 |
Correct |
1879 ms |
171724 KB |
Output is correct |
36 |
Correct |
1012 ms |
154848 KB |
Output is correct |
37 |
Correct |
724 ms |
140884 KB |
Output is correct |
38 |
Correct |
534 ms |
139828 KB |
Output is correct |
39 |
Correct |
493 ms |
139016 KB |
Output is correct |
40 |
Correct |
475 ms |
139132 KB |
Output is correct |
41 |
Correct |
889 ms |
139540 KB |
Output is correct |
42 |
Correct |
918 ms |
139600 KB |
Output is correct |
43 |
Correct |
122 ms |
141996 KB |
Output is correct |
44 |
Correct |
867 ms |
139596 KB |
Output is correct |
45 |
Correct |
715 ms |
139312 KB |
Output is correct |
46 |
Correct |
580 ms |
139276 KB |
Output is correct |
47 |
Correct |
376 ms |
139104 KB |
Output is correct |
48 |
Correct |
347 ms |
139096 KB |
Output is correct |
49 |
Correct |
489 ms |
139072 KB |
Output is correct |
50 |
Correct |
709 ms |
139320 KB |
Output is correct |
51 |
Correct |
473 ms |
139100 KB |
Output is correct |
52 |
Correct |
840 ms |
193736 KB |
Output is correct |
53 |
Correct |
844 ms |
163884 KB |
Output is correct |
54 |
Correct |
2201 ms |
202200 KB |
Output is correct |
55 |
Correct |
1002 ms |
157808 KB |
Output is correct |
56 |
Correct |
949 ms |
167012 KB |
Output is correct |
57 |
Correct |
993 ms |
145016 KB |
Output is correct |
58 |
Correct |
1065 ms |
157912 KB |
Output is correct |
59 |
Correct |
1044 ms |
166888 KB |
Output is correct |
60 |
Correct |
1075 ms |
145176 KB |
Output is correct |
61 |
Correct |
136 ms |
149252 KB |
Output is correct |
62 |
Correct |
848 ms |
193828 KB |
Output is correct |
63 |
Correct |
1682 ms |
190016 KB |
Output is correct |
64 |
Correct |
2041 ms |
180704 KB |
Output is correct |
65 |
Correct |
2016 ms |
153092 KB |
Output is correct |
66 |
Correct |
1039 ms |
140620 KB |
Output is correct |
67 |
Correct |
232 ms |
139980 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
56 ms |
134184 KB |
Output is correct |
2 |
Correct |
60 ms |
134100 KB |
Output is correct |
3 |
Correct |
57 ms |
134084 KB |
Output is correct |
4 |
Correct |
57 ms |
134084 KB |
Output is correct |
5 |
Correct |
59 ms |
134152 KB |
Output is correct |
6 |
Correct |
60 ms |
134212 KB |
Output is correct |
7 |
Correct |
59 ms |
134344 KB |
Output is correct |
8 |
Correct |
59 ms |
134408 KB |
Output is correct |
9 |
Correct |
60 ms |
134400 KB |
Output is correct |
10 |
Correct |
61 ms |
134236 KB |
Output is correct |
11 |
Correct |
59 ms |
134240 KB |
Output is correct |
12 |
Correct |
60 ms |
134184 KB |
Output is correct |
13 |
Correct |
59 ms |
134236 KB |
Output is correct |
14 |
Correct |
59 ms |
134220 KB |
Output is correct |
15 |
Correct |
61 ms |
134320 KB |
Output is correct |
16 |
Correct |
59 ms |
134368 KB |
Output is correct |
17 |
Correct |
59 ms |
134212 KB |
Output is correct |
18 |
Correct |
63 ms |
134264 KB |
Output is correct |
19 |
Correct |
59 ms |
134360 KB |
Output is correct |
20 |
Correct |
58 ms |
134168 KB |
Output is correct |
21 |
Correct |
57 ms |
134304 KB |
Output is correct |
22 |
Correct |
67 ms |
134452 KB |
Output is correct |
23 |
Correct |
58 ms |
134312 KB |
Output is correct |
24 |
Correct |
59 ms |
134280 KB |
Output is correct |
25 |
Correct |
61 ms |
134276 KB |
Output is correct |
26 |
Correct |
59 ms |
134200 KB |
Output is correct |
27 |
Correct |
58 ms |
134252 KB |
Output is correct |
28 |
Correct |
58 ms |
134248 KB |
Output is correct |
29 |
Correct |
58 ms |
134240 KB |
Output is correct |
30 |
Correct |
57 ms |
134216 KB |
Output is correct |
31 |
Correct |
2441 ms |
180464 KB |
Output is correct |
32 |
Correct |
173 ms |
139656 KB |
Output is correct |
33 |
Correct |
967 ms |
146780 KB |
Output is correct |
34 |
Correct |
2358 ms |
157028 KB |
Output is correct |
35 |
Correct |
1879 ms |
171724 KB |
Output is correct |
36 |
Correct |
1012 ms |
154848 KB |
Output is correct |
37 |
Correct |
724 ms |
140884 KB |
Output is correct |
38 |
Correct |
534 ms |
139828 KB |
Output is correct |
39 |
Correct |
493 ms |
139016 KB |
Output is correct |
40 |
Correct |
475 ms |
139132 KB |
Output is correct |
41 |
Correct |
889 ms |
139540 KB |
Output is correct |
42 |
Correct |
918 ms |
139600 KB |
Output is correct |
43 |
Correct |
122 ms |
141996 KB |
Output is correct |
44 |
Correct |
867 ms |
139596 KB |
Output is correct |
45 |
Correct |
715 ms |
139312 KB |
Output is correct |
46 |
Correct |
580 ms |
139276 KB |
Output is correct |
47 |
Correct |
376 ms |
139104 KB |
Output is correct |
48 |
Correct |
347 ms |
139096 KB |
Output is correct |
49 |
Correct |
489 ms |
139072 KB |
Output is correct |
50 |
Correct |
709 ms |
139320 KB |
Output is correct |
51 |
Correct |
473 ms |
139100 KB |
Output is correct |
52 |
Execution timed out |
5065 ms |
397100 KB |
Time limit exceeded |
53 |
Halted |
0 ms |
0 KB |
- |