문제
재우는 깜짝 상자 이벤트에 당첨되었다.
총 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이다. 모든 입력값은 정수이다.
출력
첫 줄에 재우가 얻을 수 있는 상품의 최소 개수를 출력한다.
둘째 줄에 재우가 얻을 수 있는 상품의 최대 개수를 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 9점 | ai≥1 |
| #2 | 26점 | ai의 값은 0 또는 1이다. |
| #3 | 34점 | N≤500 |
| #4 | 31점 | 주어진 제약 조건 외에 아무 제약조건이 없다. |
예제
4
0 1 0 2
1
4