This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define all(x) x.begin(),x.end()
#define sz(x) ((int)x.size())
#define PB push_back
#define pii pair<int,int>
#define ft first
#define sd second
#define MP make_pair
#define MP3(a,b,c) MP(MP(a,b),c)
#define pi3 pair<pii,int>
using namespace std;
typedef long long ll;
const int N = 300100;
const int M = 200100;
const int K = 410;
const int oo = 2e9;
vector<pi3> qr;
multiset<int> st[K];
multiset<int>::iterator ite;
int ans[N], n, k, q;
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
//    freopen("in.txt","r",stdin);
    cin >> n >> k >> q;
    for (int i = 0; i < n; i++){
        int x, t, a, b;
        cin >> x >> t >> a >> b;
        qr.PB(MP3(a, -t, x));
        qr.PB(MP3(b + 1, -t, -x));
    }
    for (int i = 0; i < q; i++){
        int y, l; cin >> l >> y;
        qr.PB(MP3(y, l, i));
    }
    sort(all(qr));
    for (pi3 cr : qr)
        if (cr.ft.sd < 0){
            int tp = -cr.ft.sd;
            if (cr.sd < 0)
                st[tp].erase(st[tp].find(-cr.sd));
            else st[tp].insert(cr.sd);
        } else {
            int res = 0;
            for (int tp = 1; tp <= k; tp++){
                if (!sz(st[tp])){
                    res = oo;
                    break;
                }
                int cur = oo;
                ite = st[tp].upper_bound(cr.ft.sd);
                if (ite != st[tp].end())
                    cur = min(cur, (*ite) - cr.ft.sd);
                if (ite != st[tp].begin())
                    cur = min(cur, cr.ft.sd - (*prev(ite)));
                res = max(res, cur);
            }
            ans[cr.sd] = (res == oo ? -1 : res);
        }
    for (int i = 0; i < q; i++)
        cout << ans[i] << '\n';
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |