페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4429

깜짝 상자 1s 64MB

문제

재우는 깜짝 상자 이벤트에 당첨되었다.

총 N개의 상자 안에는 0부터 10까지의 숫자가 써 있는 종이 한 장과, 상품 하나가 들어있으며, 재우는 열리지 않은 상자 안에는 무엇이 들어있는지 알 수 없다.

이벤트 진행 방식은 다음과 같다.

- 처음에 열 수 있는 상자는 하나뿐이다.

- 재우는 N개의 상자 중 아직 열지 않은 상자를 임의로 선택해서 연다.

- 상자를 열면, 그 상자에 들어있는 상품을 가질 수 있고,

- 추가적으로 그 상자에 들어있는 종이에 써 있는 수만큼의 상자를 더 열 수 있는 기회를 받는다.

- 더 이상 열 수 있는 상자가 남지 않았거나, 상자를 열 수 있는 기회를 모두 써버린 경우 이벤트를 종료한다.

예를 들어 4개의 상자가 있고, 각각의 상자에 들어있는 종이에는 0, 1, 0, 2가 써져 있다고 가정하자.

처음에 0이 들어있는 상자를 연 경우, 더 이상의 상자를 열 수 있는 기회가 없으므로, 한 개의 상품밖에 가져갈 수 없다.

처음에 2가 들어있는 상자를 연 경우, 두 번의 기회가 더 생긴다. 이 때, 두 번 다 0이 들어있는 상자를 연 경우, 더 이상의 기회가 없으므로 총 3개의 상품을 가져갈 수 있다.

처음에 2가 들어있는 상자를 열고, 두 번의 기회를 더 받은 후에 다시 1이 들어있는 상자를 연 경우, 한 번의 기회를 더 받게 되어 4개의 상품 모두를 가져갈 수 있다.

상자의 개수와 각 상자에 써져 있는 숫자가 주어질 때, 재우가 가져갈 수 있는 최소 상품의 수와, 최대 상품의 수를 각각 출력하는 프로그램을 작성하라.


입력

첫 줄에 상자의 개수인 N이 주어진다.

둘째 줄에, N개의 상자에 들어있는 숫자인 ai가 공백을 사이에 두고 주어진다. 

[제약 형식]

 모든 부분문제에서 1≤N≤100,000이다. 모든 부분문제에서 0≤ai≤10이다. 모든 입력값은 정수이다.


출력

첫 줄에 재우가 얻을 수 있는 상품의 최소 개수를 출력한다.

둘째 줄에 재우가 얻을 수 있는 상품의 최대 개수를 출력한다. ​ 


부분문제

번호 점수 조건
#19점

ai≥1

#226점

ai의 값은 0 또는 1이다.

#334점

N≤500

#431점

주어진 제약 조건 외에 아무 제약조건이 없다.


예제

4

0 1 0 2
1

4

출처

ohjtgood
로그인해야 코드를 작성할 수 있어요.