CF BUDDY
← Problems·

1366B · Shuffle

1300 · math, two pointers

Problem: You are given an array consisting of nn integers a1a_1, a2a_2, ..., ana_n. Initially ax=1a_x = 1, all other elements are equal to 00.

You have to perform mm operations. During the ii-th operation, you choose two indices cc and dd such that lic,dril_i \le c, d \le r_i, and swap aca_c and ada_d.

Calculate the number of indices kk such that it is possible to choose the operations so that ak=1a_k = 1 in the end.

Input Format: The first line contains a single integer tt (1t1001 \le t \le 100) — the number of test cases. Then the description of tt testcases follow.

The first line of each test case contains three integers nn, xx and mm (1n1091 \le n \le 10^9; 1m1001 \le m \le 100; 1xn1 \le x \le n).

Each of next mm lines contains the descriptions of the operations; the ii-th line contains two integers lil_i and rir_i (1lirin1 \le l_i \le r_i \le n).

Output Format: For each test case print one integer — the number of indices kk such that it is possible to choose the operations so that ak=1a_k = 1 in the end.

Note: In the first test case, it is possible to achieve ak=1a_k = 1 for every kk. To do so, you may use the following operations:

  1. swap aka_k and a4a_4;
  2. swap a2a_2 and a2a_2;
  3. swap a5a_5 and a5a_5.

In the second test case, only k=1k = 1 and k=2k = 2 are possible answers. To achieve a1=1a_1 = 1, you have to swap a1a_1 and a1a_1 during the second operation. To achieve a2=1a_2 = 1, you have to swap a1a_1 and a2a_2 during the second operation.

Sample Cases

Case 1

Input

3
6 4 3
1 6
2 3
5 5
4 1 2
2 4
1 2
3 3 2
2 3
1 2

Output

6
2
3

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback