브루와 오렌지 나누기
시간 제한0.1초메모리 제한1024 MB
증가 쌍이 X개, 감소 쌍이 Y개가 되도록 1부터 10^9 사이의 값으로 이루어진 가장 짧은 수열을 만듭니다.
문제
브루의 창고에는 이상 이하의 맛을 가진 오렌지가 각각 개씩 쌓여 있다. 브루는 친구들과 오렌지를 나눠 먹으려 한다.
브루는 친구를 총 명 초대할 예정이다. 의 값은 아직 정해지지 않았다. 명의 친구들은 일렬로 서서 브루가 주는 오렌지를 한 개씩 받아간다. 브루는 아래 조건을 만족하도록 오렌지를 주고 싶다.
먼저 온 친구부터 차례로 번, 번, , 번 친구라고 하자. 번 친구가 받은 오렌지의 맛을 라고 하자. 이때,
- 이고 인 의 개수는 개이다.
- 이고 인 의 개수는 개이다.
조건을 만족하도록 오렌지를 나눠 주는 방법이 여러 가지라면, 브루는 오렌지를 최대한 아끼기 위해 이 가장 작은 방법을 고르려 한다. 브루의 조건을 만족하도록 친구들을 초대해 오렌지를 나눠 주는 프로그램을 만들어 보자.
입력
첫 줄에 두 정수 와 가 띄어쓰기로 구분되어 주어진다.
출력
첫 줄에는 초대할 친구의 수 을 출력한다.
둘째 줄에는 명의 친구에게 나눠줄 오렌지의 맛 을 띄어쓰기로 구분하여 출력한다.
가능한 방법이 여러 가지인 경우 이 최소인 방법을 출력한다. 이마저도 여러 가지라면 이 최소인 방법 중 아무거나 출력한다.
위 조건을 만족하는 인 방법이 항상 존재함이 보장된다.
제한
- 의 각 원소는 이상 이하의 정수이다.