Codeforces Round 130 (Div. 2) |
---|
Закончено |
Вася, как и многие другие люди, любит участвовать в различных розыгрышах и лотереях. Сейчас он собирает упаковки от известного шоколадного батончика «Юпитер». По условиям акции на каждой упаковке написано целое число — количество баллов, которое прибавляется к балансу участника при покупке этого батончика. Накопив некоторое количество баллов, участник акции может прийти в центр выдачи призов и обменять их на призы, при этом стоимость выбранного приза просто вычитается из баланса игрока.
Вася не только покупал батончики, но и вел записи, сколько баллов стоила каждая упаковка. Также, он помнит, что всегда придерживался жадной стратегии — как только у него появлялась возможность получить хотя бы один приз, он шел в центр выдачи и менял баллы на призы. При этом если был выбор между несколькими призами, то он выбирал самый дорогой. Если после обмена у него оставалось достаточное количество баллов для получения еще как минимум одного приза, то Вася продолжал обмен баллов.
В акции участвовали следующие призы (они отсортированы в порядке увеличения стоимости):
Теперь Вася хочет вспомнить, какие же призы он получил. Вам известна последовательность p1, p2, ..., pn, где pi означает сколько баллов получил Вася за i-ый батончик. Последовательность баллов задана в хронологическом порядке. Также вы знаете числа a, b, c, d, e. Ваша задача — найти сколько и каких призов Вася получил, а также сколько баллов у него осталось после завершения всех операций.
В первой строке записано единственное целое число n (1 ≤ n ≤ 50) — количество упаковок от батончиков, за которые Вася получал баллы. Во второй строке записаны целые числа p1, p2, ..., pn (1 ≤ pi ≤ 109), разделенные пробелами. В третьей строке записано 5 чисел a, b, c, d, e (1 ≤ a < b < c < d < e ≤ 109) — стоимости призов.
Выведите в первую строку 5 целых чисел, разделенных пробелами — количество кружек, полотенец, сумок, велосипедов и автомобилей, которые получил Вася, соответственно. Во вторую строку выведите одно целое число — сколько баллов осталось у Васи после завершения всех операций обмена.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
3
3 10 4
2 4 10 15 20
1 1 1 0 0
1
4
10 4 39 2
3 5 10 11 12
3 0 1 0 3
0
В первом примере после первого батончика Вася получил 3 балла и сразу же обменял 2 из них на кружку. Затем после второго батончика Вася выиграл сумку, а после третьего — полотенце. В конце у Васи осталось 3 - 2 + 10 - 10 + 4 - 4 = 1 баллов.
Название |
---|