Codeforces Round 207 (Div. 1) |
---|
Закончено |
Команда школьников из города S направляется на Всеберляндскую олимпиаду по информатике. Традиционно, ребята едут на поезде. Всем школьникам купили билеты в один вагон, состоящий из n купе (в каждом купе едут ровно четыре человека). Известно, что если в купе едут один или два школьника-олимпиадника, то им становится скучно, а если едут три или четыре школьника-олимпиадника, то в этом купе весело на протяжении всей поездки.
Школьники хотят поменяться с другими людьми так, чтобы ни в каком купе, где едут школьники, им не было скучно. Чтобы поменяться с другим человеком местами, нужно убедить его, что это действительно необходимо. Школьники не могут самостоятельно найти нужные аргументы, поэтому они обратились за помощью к сочувствующей им проводнице. Проводница, пользуясь своим жизненным опытом, может уговорить любого пассажира поменяться местами с кем-то из школьников.
Однако, проводница не хочет терять время на уговоры зря, поэтому хочет узнать, какое минимальное количество людей ей надо уговорить поменяться местами со школьниками. Ваша задача — найти это количество.
После всех обменов в каждом купе должно остаться либо ни одного школьника, либо три или четыре школьника.
В первой строке записано целое число n (1 ≤ n ≤ 106) — количество купе в вагоне. Во второй строке записано n целых чисел a1, a2, ..., an — количества школьников, едущих в каждом из купе (0 ≤ ai ≤ 4). Гарантируется, что в поезде едет хотя бы один школьник.
В случае, если никакая последовательность обменов местами остальных людей со школьниками не приведет к желаемому результату, выведите число «-1» (без кавычек). В противном случае, выведите наименьшее количество людей, которых нужно уговорить поменяться местами.
5
1 2 2 4 3
2
3
4 1 1
2
4
0 3 0 4
0
Название |
---|