Contest.uni-smr.ac.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Задача 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


Сдать задачу

Задать вопрос жюри по этой задаче