식당 줄
시간 제한2초메모리 제한1024 MB
두 명으로 시작한 줄이 n명이 되도록 단계 수 k의 최댓값과 각 단계의 a_i 값을 구합니다.
문제
은하 선의 학교 식당을 관리하는 이노켄티는 질서를 무척 중요하게 여긴다. 하지만 매일 아주 긴 쉬는 시간에 학생들이 점심을 먹으러 몰려가면 식당은 곧 혼란에 빠진다.
처음에는 가장 재빠른 학생 두 명이 줄을 선다. 이후 줄은 단계에 걸쳐 늘어난다. 단계()에서는 줄에 서 있는 이웃한 학생 사이의 빈틈마다 명이 끼어든다. 예를 들어 , , 이면 첫 단계 후 줄에는 5명이, 두 번째 단계 후에는 9명이 선다.
이노켄티는 이 혼란을 바로잡고 싶어 한다. 그가 아는 것은 줄의 최종 학생 수 뿐이고, 줄이 어떻게 늘어났는지 알아내려 한다. 만으로는 과정이 하나로 정해지지 않으므로, 단계 수 의 최댓값과 그에 맞는 수열 ()를 구하려 한다. 는 각 단계에서 빈틈마다 끼어든 사람 수다.
입력
정수 이 하나 주어진다 (). 이는 줄에 선 최종 학생 수다.
출력
첫째 줄에 단계 수의 최댓값 를 출력한다. 둘째 줄에는 공백으로 구분한 양의 정수 를 출력한다. 최대 길이의 수열이 여러 개라면 그중 하나를 출력한다.
힌트
첫 번째 예시에서는 가능성이 하나뿐이다. 첫 단계에서 두 명이 끼어든다. 두 번째 예시에서는 과정이 하나로 정해지지 않는다. 문제 본문의 경우는 인 한 가지 진행이고, 단계 수의 최댓값은 3이다.