CF1843E.Tracking Segments

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa consisting of nn zeros. You are also given a set of mm not necessarily different segments. Each segment is defined by two numbers lil_i and rir_i (1≤li≤ri≤n1 \le l_i \le r_i \le n) and represents a subarray ali,ali+1,…,aria_{l_i}, a_{l_i+1}, \dots, a_{r_i} of the array aa.

Let's call the segment li,ril_i, r_i beautiful if the number of ones on this segment is strictly greater than the number of zeros. For example, if a=[1,0,1,0,1]a = [1, 0, 1, 0, 1], then the segment [1,5][1, 5] is beautiful (the number of ones is 33, the number of zeros is 22), but the segment [3,4][3, 4] is not is beautiful (the number of ones is 11, the number of zeros is 11).

You also have qq changes. For each change you are given the number 1≤x≤n1 \le x \le n, which means that you must assign an element axa_x the value 11.

You have to find the first change after which at least one of mm given segments becomes beautiful, or report that none of them is beautiful after processing all qq changes.

你有一个由 nn 个零组成的数组 aa。同时,你被给定一个包含 mm 个(不一定互不相同)区间的集合。每个区间由两个数 lil_i 和 rir_i(满足 1≤li≤ri≤n1 \le l_i \le r_i \le n)定义,表示数组 aa 的一个子数组 ali,ali+1,…,aria_{l_i}, a_{l_i+1}, \dots, a_{r_i}。

我们称区间 li,ril_i, r_i 是优美的,当且仅当该区间内数字 11 的个数严格大于数字 00 的个数。例如,若 a=[1,0,1,0,1]a = [1, 0, 1, 0, 1],则区间 [1,5][1, 5] 是优美的(其中 11 的个数为 33,00 的个数为 22),但区间 [3,4][3, 4] 不是优美的(其中 11 的个数为 11,00 的个数也为 11)。

此外,你还有 qq 次修改操作。每次修改操作给出一个数 1≤x≤n1 \le x \le n,表示你需要将元素 axa_x 的值设为 11。

你需要找出第一次修改操作,使得在该次操作之后,所给的 mm 个区间中至少有一个变为优美的;如果处理完全部 qq 次修改后仍没有任何区间变为优美,则报告不存在这样的操作。

输入格式

The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains two integers nn and mm (1≤m≤n≤1051 \le m \le n \le 10^5) — the size of the array aa and the number of segments, respectively.

Then there are mm lines consisting of two numbers lil_i and rir_i (1≤li≤ri≤n1 \le l_i \le r_i \le n) —the boundaries of the segments.

The next line contains an integer qq (1≤q≤n1 \le q \le n) — the number of changes.

The following qq lines each contain a single integer xx (1≤x≤n1 \le x \le n) — the index of the array element that needs to be set to 11. It is guaranteed that indexes in queries are distinct.

It is guaranteed that the sum of nn for all test cases does not exceed 10510^5.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)——测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤m≤n≤1051 \le m \le n \le 10^5)——分别为数组 aa 的大小和区间的数量。

接下来有 mm 行,每行包含两个数 lil_i 和 rir_i(1≤li≤ri≤n1 \le l_i \le r_i \le n)——表示各区间的边界。

下一行包含一个整数 qq(1≤q≤n1 \le q \le n)——修改操作的次数。

接下来的 qq 行每行包含一个整数 xx(1≤x≤n1 \le x \le n)——表示需将其置为 11 的数组元素的下标。保证查询中的下标互不相同。

保证所有测试用例的 nn 值之和不超过 10510^5。

输出格式

For each test case, output one integer — the minimum change number after which at least one of the segments will be beautiful, or −1-1 if none of the segments will be beautiful.

对于每个测试用例,输出一个整数——使得至少有一个线段变为“优美”的最小修改次数;若没有任何线段能变为“优美”,则输出 −1-1。

输入输出样例

  • 输入#1

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

    输出#1

    3
    -1
    3
    3
    3
    1

说明/提示

In the first case, after first 2 changes we won't have any beautiful segments, but after the third one on a segment [1;5][1; 5] there will be 3 ones and only 2 zeros, so the answer is 3.

In the second case, there won't be any beautiful segments.

在第一种情况下,前两次修改后将不存在任何优美线段;但在第三次修改后,在线段 [1;5][1; 5] 上将有 3 个 1 和仅 2 个 0,因此答案为 3。

在第二种情况下,将不存在任何优美线段。

输入解题思路,AI测评打分。不知道怎么写?

首页