Задача G. Кросс-тестирование
Задачу добавил: alef
Успешно сдано решений: 5
Когда для всех задач существуют (вероятно) правильные решения и наборы тестов, члены жюри приступают к кросс-тестированию. В процессе кросс-тестирования каждый член жюри может добавить новый тест (тесты всегда добавляются в конец), удалить существующий тест (нумерация тестов при этом «сдвигается» влево: так, если был удален тест # 4, то номера всех следующих за ним тестов будут уменьшены на 1), изменить существующий тест, добавить новое решение (нумерация решений по каждой задаче отдельная). Решения не удаляются: если они были неправильными, надо убедиться, что в результате изменения набора тестов они не будут засчитаны (более того, иногда члены жюри с той же целью добавляют решения, которые не должны пройти какие-то из тестов). Нумерация тестов, решений и задач начинается с 1.
После изменения набора тестов решения перетестируются. При этом все произошедшие в тестах и решениях изменения записываются в один лог-файл, а результаты перетестирования — в другой (постоянно перезаписываемый).
Один из членов жюри, отправляясь в поездку (во время которой доступ к интернету затруднен), скопировал себе только лог-файл, описывающий произошедшие изменения, и теперь хочет выяснить, сколько существует решений для каждой задачи, которые проходят все тесты, и сколько существует тестов для каждой задачи, которые не проходит ни одно решение.
Формат входного файла input.txt
Первая строка — целое число N (1 <= N <= 10000) — количество задач, для которых существуют тесты и решения.
Вторая строка содержит N пар целых чисел через пробел: Sj и Tj (0 <= Sj, Tj <= 10000) — количество уже имеющихся решений и количество уже имеющихся тестов для задачи #j.
Затем следует N групп по Sj строк, причем в каждой строке сначала записано количество тестов, которые не проходит решение с соответствующим номером для задачи #j, а затем номера этих тестов. Все числа записаны через пробел.
Далее следует лог-файл, каждая строка которого может быть одной из следующего набора (знаки препинания для простоты пропущены):
Task j New test added Y solutions v1 v2 … vY fail to pass this test – к задаче j добавлен тест, который не прошло Y решений задачи #j, их номера v1, v2, … ,vY
Task j Test k updated Y solutions v1 v2 … vY fail to pass this test — обновлен тест k к задаче j, который не прошло Y решений задачи #j, их номера v1, v2, …, vY (и только эти решения, независимо от того, какие не проходили ранее)
Task j Test k removed — удален тест k к задаче j
Task j Solution added Fails to pass Z tests u1 u2 … uZ — добавлено решение к задаче #j, оно не проходит Z тестов из текущего набора тестов, u1, u2, …, uZ — номера этих тестов
В случае, если Y или Z равны нулю, номера решений (или тестов) отсутствуют.
Лог-файл содержит хотя бы одну строку.
Размер входного файла не превосходит 4 Мб
Формат выходного файла output.txt
В каждой из N строк записаны целые числа через пробел — количество решений для задачи # j, проходящих все тесты, количество, а затем номера тестов для задачи # j, которые не проходит максимальное количество решений этой задачи, в порядке возрастания их (тестов) номеров.
Если все решения задачи #j проходят все тесты, то после количества решений вывести через пробел 0.
Пример входного файла
3
2 3 1 1 1 2
0
1 2
0
1 2
Task 2 New test added 1 solutions 1 fail to pass this test
Task 2 Solution added Fails to pass 0 tests
Task 2 New test added 1 solutions 2 fail to pass this test
Task 2 New test added 2 solutions 1 2 fail to pass this test
Task 3 New test added 0 solutions fail to pass this test
Task 3 New test added 0 solutions fail to pass this test
Task 1 New test added 1 solutions 2 fail to pass this test
Task 3 Solution added Fails to pass 0 tests
Task 2 Solution added Fails to pass 3 tests 1 3 4
Task 2 Test 1 removed
Task 2 Solution added Fails to pass 1 tests 1
Task 3 Test 2 removed
Task 2 Test 1 updated 3 solutions 1 3 4 fail to pass this test
Task 2 Test 2 updated 3 solutions 1 2 3 fail to pass this test
Task 2 Solution added Fails to pass 0 tests
Task 2 New test added 2 solutions 2 4 fail to pass this test
Task 1 New test added 1 solutions 1 fail to pass this test
Пример выходного файла
0 3 2 4 5
1 3 1 2 3
2 0