줄
면접 대비시간 제한0.5초메모리 제한1024 MB
학생들이 한 명씩 사이사이에 끼어드는 과정을 거듭한 뒤 최종 인원 N이 주어질 때, 처음 줄에 있을 수 있는 최소 인원을 구한다.
문제
여러 학생이 일렬로 줄을 서서 코로나 검사를 기다리고 있다. 그런데 늦게 온 학생들이 끼어들어, 줄에 있는 두 학생 사이사이마다 정확히 한 명씩 서게 된다. 얼마 후 또 다른 지각생들이 와서 똑같이 두 학생 사이사이마다 한 명씩 끼어든다. 이런 일이 여러 번 반복된다. 마침내 코로나 검사가 시작되기 직전, 줄에는 N명의 학생이 있다.
프로그램 line을 작성하여 처음에 줄에 있었을 수 있는 학생 수의 최솟값을 구하여라.
입력
표준 입력의 첫째 줄에 코로나 검사가 시작되기 직전 줄에 있는 학생 수 N이 정수로 주어진다.
출력
표준 출력의 첫째 줄에 처음에 줄에 있었을 수 있는 학생 수의 최솟값을 정수로 출력한다.
제한
- 1 < N < 10 000
힌트
예제 1의 설명: 마지막 무리로 온 학생들은 줄에 있는 학생들 사이사이에 정확히 한 명씩 끼어들었다. 학생이 29명인 줄에서 끼어든 학생들이 한 명씩 사이사이에 들어갔으므로, 그 전의 학생 수는 15명이었고 마지막 무리는 14명이었다. 따라서 마지막 무리가 오기 전 줄에는 15명의 학생이 있었다. 그러면 그 앞의 무리는 7명으로 이루어졌다. 그들이 줄에 오기 전에는 8명의 학생이 있었다. 이 8명이 처음 학생 수이다. 8명은 두 무리로 나누어 한 무리의 학생들이 다른 무리의 학생들 사이사이마다 한 명씩 끼어들도록 할 수 없기 때문이다.