Департамент образования г.Москвы
МГУ им.М.В.Ломоносова
МИОО
МЦНМО

Московская олимпиада по информатике

на сайте www.olympiads.ru

Новости Об олимпиаде Личная олимпиада Командный тур Пробный интернет-тур Заочный тур Сборы Странички других лет www.olympiads.ru
Заочный тур
Информация о заочном туре
Задачи
Тесты, решения жюри
Результаты
Регистрация, изменение настроек
Страница сдачи решений
Несколько советов участникам олимпиад
FAQ по работе с тестирующей системой
Задать вопрос оргкомитету

Московская городская олимпиада школьников по информатике, 2003/04 учебный год
при поддержке компаний
Microsoft NIX

Задача A. Подсчет баллов

Имя входного файла: a.in
Имя выходного файла: a.out
Максимальное время работы на одном тесте: 3 секунды
Максимальный объем используемой памяти: 8 мегабайт

Решение каждой задачи заочного тура проверяется на наборе заранее заготовленных тестов. По результатам работы программы на каждом тесте участнику либо начисляются баллы за этот тест (когда программа выдала правильный ответ), либо не начисляются (когда во время работы программы произошли ошибки или выданный ответ не верен). Тесты могут иметь разную стоимость.

Дополнительные баллы начисляются участнику, если его программа прошла все тесты.

Участник может исправлять свое решение, и посылать его на проверку повторно (при этом решение проверяется на том же наборе тестов). При этом за каждую попытку из количества набранных по задаче баллов вычитается штраф, который равен 0 при 1-й попытке, а при каждой следующей возрастает на 2 (то есть 2 при второй, 4 - при третьей, 6 - при четвертой и т.д.).

Из баллов, полученных участником за каждую из попыток (с учетом начисленных штрафов), выбирается максимальный результат, который и засчитывается как результат данного участника по этой задаче. Это нужно, в частности, для того, чтобы последующие попытки не ухудшали уже полученный участником результат по задаче.

Например, если участник делает первую попытку и набирает 10 баллов, его результат по задаче равен 10 баллов. Пусть на второй попытке участник посылает решение, которое набирает 8 баллов. С учетом штрафа за эту попытку участник имеет 6 баллов, однако результат команды по задаче остается равным 10. Пусть с 3-й попытки решение набрало 20 баллов, тогда (с учетом штрафа) результат участника по задаче становится равен 16 баллам. Наконец, пусть с 4-й попытки решение проходит все тесты, тогда участник получает сумму баллов за все тесты, плюс призовые баллы за прохождение всех тестов, минус 6 баллов штрафа (если, конечно, эта величина не меньше 16 баллов, которые уже были у данного участника).

Напишите программу, которая определяет результат данного участника по этой задаче.

Формат входных данных

Во входном файле записано сначала число N - количество тестов, на которых проверяются решения данной задачи (1≤N≤100). Далее идет N натуральных чисел, не превышающих 100, - баллы, которые начисляются за прохождение каждого из тестов. Далее идет целое число из диапазона от 0 до 100 - количество баллов, которое дополнительно начисляется за прохождение всех тестов.

Далее идет натуральное число M - количество попыток сдачи задачи (1≤M≤100). После чего идет M наборов по N чисел в каждом, задающих результаты проверки каждой из M попыток сдачи задачи на тестах. 0 обозначает, что соответствующий тест не пройден, 1 - пройден.

Формат выходных данных

В выходной файл выведите M чисел. i-ое число должно соответствовать результату участника после совершения им первых i попыток.

Примеры

a.in a.out
4
1 2 3 4
5
3
0 0 0 0
1 1 1 1
0 1 0 1
0
13
13
2
1 8
0
3
0 0
1 0
0 1
0
0
4
Webmaster: webmaster@olympiads.ru