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>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<ll> vi;
typedef pair<ll,ll> ii;
typedef vector<ii> vii;
#define rep(i,a,b) for(int i = a; i < b; i++)
#define per(i,a,b) for(int i = a; i >= b; i--)
#define inf 1000000000000000000
#define sz(x) (ll)(x).size()
#define all(x) x.begin(),x.end()
struct store {
  ll x,a,b,t;
} ;
vector<store> stores;
ll n,q,k,l,y;
store _;
vi type;
int main(){
  cin >> n >> k >> q;
  stores.assign(n,_);
  rep(i,0,n){
    cin >> stores[i].x >> stores[i].t >> stores[i].a >> stores[i].b;
    stores[i].t--;
  }
  rep(i,0,q){
    type.assign(k,-1);
    cin >> l >> y;
    rep(i,0,n){
      ll tp = stores[i].t;
      if (stores[i].a > y || stores[i].b < y) continue;
      if (type[tp] == -1) type[tp] = abs(l-stores[i].x);
      else type[tp] = min(type[tp],abs(l-stores[i].x));
    }
    ll ma = -1;
    rep(i,0,k) {
      if (type[i] == -1) { cout << -1 << endl; break;}
      else ma = max(ma,type[i]);
      if (i == k-1) { cout << ma << endl; }
    }
  }
}
| # | 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... |