Agar.io
면접 대비시간 제한1.5초메모리 제한1024 MB
질량 2에서 시작하는 셀이 자기보다 작은 셀만 먹어서 가장 큰 상대 질량에 도달하는 최소 흡수 횟수를 구합니다.
문제
agar.io 게임은 한동안 인터넷에서 꽤 유명했던 게임으로, 웹 브라우저에서 진행된다. 서버에 접속한 각 플레이어는 질량을 가진 셀 하나를 조종한다. 자신보다 질량이 작은 셀을 만나면 그 셀을 흡수하고, 질량은 흡수한 셀의 질량만큼 늘어난다. 자신보다 질량이 크거나 같은 셀을 만나면 즉시 진다.
바이텍은 방금 서버에 접속했고, 그의 셀 질량은 2로 그리 크지 않다. 그는 이기고 싶어 한다. 즉, 이 서버에서 가장 큰 셀이 되고 싶다. 뛰어난 해킹 실력으로 다른 플레이어들의 이동을 막는 데 성공했다. 그래서 그는 흡수할 상대를 자유롭게 고를 수 있고, 다른 플레이어들은 그와 마주치는 것을 피할 수 없다.
이 좋은 상황은 오래가지 않는다. 관리자가 곧 바이텍의 차단을 풀 것이다. 바이텍은 1초 안에 다른 셀 하나를 흡수할 수 있다. 서버에서 가장 큰 셀이 되려면 몇 초가 걸리는가? 다른 가장 큰 셀과 질량이 같아져 비기는 것은 괜찮다.
서버에 있는 바이텍의 적들이 조종하는 셀들의 질량이 주어졌을 때, 바이텍이 게임에서 가장 큰 셀이 되는 데 필요한 최소 시간을 구하는 프로그램을 작성하라. 바이텍의 셀은 질량 2에서 시작한다는 점에 유의하라.
입력
첫째 줄에 바이텍의 적들이 조종하는 셀의 개수를 나타내는 자연수 ()이 주어진다. 둘째 줄, 즉 마지막 줄에는 공백으로 구분된 자연수 개 ()가 주어진다. 이는 적들의 셀 질량이다.
출력
다른 셀끼리는 서로 흡수하지 않는다고 가정할 때, 바이텍의 셀이 서버에서 가장 커지는 데 필요한 최소 초를 음이 아닌 정수 하나로 출력한다. 이 목표가 불가능하면 대신 NIE라는 단어만 출력한다.