考核知识点:思维、贪心、暴力

使用一个布尔数组或字符数组记录每个资源的上锁状态。初始化时所有资源都未上锁。维护两个计数器,一个用于统计区间[1,x]中未上锁资源的数量,另一个用于统计区间[y,N]中未上锁资源的数量。

下述代码请用Pypy3语言运行。

t = int(input())
for _ in range(t):
    n, m, x, y = map(int, input().split())
    locks = [False] * (n + 1)
    a1 = 0
    a2 = 0
    a1 = x
    a2 = n - y + 1
    for _ in range(m):
        p = int(input())
        locks[p] = not locks[p]
        if p <= x:
            a1 += 1 if not locks[p] else -1
        if p >= y and p <= n:
            a2 += 1 if not locks[p] else -1
        print(a1, a2)