이 문제의 관건은 피자 조각의 크기다.
만약에 1/2개를 먹는 친구 1명과 3/4개를 먹는 친구 2명이 있다면 숫자를 다 더했을 때는 0.5+0.75+0.75=2.0이므로 2판을 먹어도 충분하다. 하지만 실제로 피자를 1/2 모양으로 잘랐을 때 남은 피자 조각은 1/2, 반원 모양이므로 3/4조각의 피자를 먹는 친구가 먹을 수 없어 새로운 피자를 먹어야 한다. 이 점을 이용해야 한다.
1/2 + 1/4 2
1/2 2
1/4 + 3/4
1/4 3
1/4 2 + 1/2
위와 같은 조건으로 먹을 때만 1판을 먹는 것이며 이외의 조합은 새로운 1판을 더 꺼내 먹어야 한다는 것이다.
그렇다면 입력으로 받는 조각들의 개수를 세서 위 조건에 맞는 경우 피자 개수로 하나씩 카운트 해 피자 개수를 잰다.
N = int(input())
pizza = [ eval(input()) for _ in range(N) ]
quarter = pizza.count(0.25)
half = pizza.count(0.5)
three_quarters = pizza.count(0.75)
ans = 0
#3/4조각 1/4조각 하나 합치기
min_3q_1q = min(three_quarters, quarter)
ans += min_3q_1q
three_quarters -= min_3q_1q
quarter -= min_3q_1q
#남은 3/4 조각은 피자 하나
ans += three_quarters
three_quarters = 0
#1/2조각 2개 하나의 피자
ans += half // 2
half %= 2
#남은 1/2조각과 1/4조각 두 개 하나 피자로 합치
if half == 1:
if quarter >= 2:
ans += 1
quarter -= 2
else: # 1/2조각과 1/4조각이 각각 하나씩 남은 경우
ans += 1
quarter = 0
#남은 1/4 조각 네 개를 하나의 피자로 합치기
ans += quarter // 4
if quarter %4 != 0:
ans += 1
print(ans)