@@ -236,13 +236,13 @@ void search(Node *root, pt &key, LL &d, LL x)
236236 search (root->right , key, d, x);
237237 }
238238}
239- void merge (LL arr[], int p, int q, int r)
239+ void merge (pt arr[], int p, int q, int r)
240240{
241241
242242 int n1 = q - p + 1 ;
243243 int n2 = r - q;
244244
245- LL L[n1], M[n2];
245+ pt L[n1], M[n2];
246246
247247 for (int i = 0 ; i < n1; i++)
248248 L[i] = arr[p + i];
@@ -256,7 +256,7 @@ void merge(LL arr[], int p, int q, int r)
256256
257257 while (i < n1 && j < n2)
258258 {
259- if (L[i] >= M[j])
259+ if (L[i]. l >= M[j]. l )
260260 {
261261 arr[k] = L[i];
262262 i++;
@@ -284,7 +284,7 @@ void merge(LL arr[], int p, int q, int r)
284284 }
285285}
286286
287- void mergeSort (LL arr[], int l, int r)
287+ void mergeSort (pt arr[], int l, int r)
288288{
289289 if (l < r)
290290 {
@@ -300,21 +300,22 @@ int main()
300300 int t = 1 ;
301301 cin >> t;
302302 int T = 1 ;
303- // auto start = high_resolution_clock::now();
304303 while (t--)
305304 {
306305 Node *root = NULL ;
307306 int n, m;
308307 cin >> n >> m;
309308 pt v[n];
310- LL vv[m];
309+ pt vv[m];
311310 LL ans[m];
312311 FOR (i, 0 , n)
313312 {
314313 cin >> v[i].l >> v[i].r ;
315314 }
316315 FOR (i, 0 , m)
317- cin >> vv[i];
316+ cin >> vv[i].l ;
317+ FOR (i, 0 , m)
318+ cin >> vv[i].r ;
318319 FOR (i, 0 , n)
319320 {
320321 root = insert (root, pt (v[i].l , v[i].r ));
@@ -323,7 +324,7 @@ int main()
323324
324325 FOR (i, 0 , m)
325326 {
326- LL x = vv[i];
327+ LL x = vv[i]. r ;
327328 LL d = 1e18 ;
328329 pt p = pt (INT_MAX, INT_MAX);
329330 search (root, p, d, x);
0 commit comments