Problem 1053 --D.房间安排

1053: D.房间安排

Time Limit: 2 Sec  Memory Limit: 256 MB
Submit: 416  Solved: 61
[Submit][Status][Web Board][Creator:]

Description

Alice所在的社团计划一次外出游玩。Alice需要安排所有人入住的房间。社团一共订了n个房间,然后Alice给第i间房间安排了ai(0<=ai<=4)个人。向旅馆提交了住宿信息之后,Alice发现如果出现一个房间人数为1或者为2的情况,这个房间的社员就会感觉到孤独和凄凉,会很失望。所以Alice现在想调整一下,把某些社员调到其他房间,使得所有社员都不会感到孤独。但是为了避免不必要的麻烦,她希望调整的人数最少。AliceBob求助,Bob希望你能写个程序求出最少需要调整的人数。

注意:你可以把一个房间的初始人员都调出去,允许房间空闲,不允许某个房间人数超过4个。

Input

第一行输入一个整数n(1<=n<=1000000),表示预定的房间数量。

接下来一行输入n个数,第i个数是ai0<=ai<=4),表示第i个房间初始有ai个人。

Output

输出一个数,表示最少需要调整的人的数量,如果无论怎么安排都不能满足要求,输出-1

Sample Input

5
1 2 2 4 3
4
0 3 0 4

Sample Output

2
0

HINT


第一个样例最少需要调动2个人,将第一个房间的一个人调到第二个房间,从第四个房间调一个人到第三个房间,最后人数为0 3 3 3 3,满足要求。



第二个样例不需要调动,所以答案是0

Source

[Submit][Status]