단조 증가 수열 a가 주어질 때 각 x를 a_x번 이하의 비교 질문으로 항상 맞힐 수 있는지 판정하고 가능한 첫 질문 q를 모두 구한다.
어려움8이분 탐색그리디동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한64 MB지학이는 이진 탐색을 가르치려고 다음 게임을 만들었다.
수업에서 학생들이 이 게임으로 이진 탐색을 익히던 어느 날, 재현이가 최적의 방법을 미리 알려주는 바람에 게임이 너무 쉬워졌다. 그래서 지학이는 규칙을 이렇게 바꿨다. 컴퓨터는 v=x이면서 그때까지 한 "x가 q 이하입니까?" 질문의 수가 ax번 이하일 때만 성공을 출력하고, 그렇지 않으면 실패를 출력한다. 마지막 확인 질문은 이 수에 세지 않는다. 지학이는 정렬된 수열을 좋아하므로 수열 a는 a1≤a2≤⋯≤an을 만족한다.
재현이는 이렇게 바뀐 게임에서 항상 성공하는 방법을 찾지 못했고, 그런 방법은 없다고 주장했다. 지학이도 증명하지 못해서 당신에게 도움을 청했다.
컴퓨터가 어떤 x를 정했든 항상 성공하는 질문 방법이 있는지 판정하고, 있다면 첫 번째 질문으로 물어봐도 되는 q를 모두 구하라. 어떤 q가 첫 번째 질문으로 가능하다는 것은, 첫 질문을 "x가 q 이하입니까?"로 시작하고 그다음부터는 받은 답에 따라 질문을 골라서 모든 x에 대해 성공하는 방법이 존재한다는 뜻이다.
첫째 줄에 n (1≤n≤106)이 주어진다.
둘째 줄에 n개의 정수 a1,a2,…,an (1≤a1≤a2≤⋯≤an≤109)이 공백을 사이에 두고 주어진다.
첫째 줄에 첫 번째 질문으로 물어봐도 되는 q의 가짓수를 출력한다. 그런 q가 무한히 많으면 가짓수 대신 inf를 출력한다.
둘째 줄에 첫 번째 질문으로 물어봐도 되는 q를 오름차순으로 공백을 사이에 두고 출력한다. 그런 q가 하나도 없거나 무한히 많으면 둘째 줄에는 아무것도 출력하지 않는다.