달력
시간 제한1초메모리 제한512 MB
n개 원소를 k칸 순환 회전시키는 데 필요한 구간 뒤집기 명령의 최소 개수와 그 명령들을 구한다.
문제
Handy Smurf는 최신 발명품인 나노봇 달력을 만들었다. 이 달력은 현재 날짜를 표시하는 나노봇들로 이루어져 있다. 날짜를 바꾸기 위해 나노봇들은 매일 칸의 순환 회전을 수행해야 한다. 즉, 처음에 위치 에 있던 나노봇은 이제 위치 에 있게 된다. 나노봇의 번호는 부터 시작한다. 그러나 나노봇들은 단 하나의 명령만 이해할 수 있다. reverse 은 위치 과 사이에 있는 모든 나노봇의 위치를 뒤집는다. 즉, 처음에 위치 에 있던 나노봇은 이제 에, 에 있던 나노봇은 이제 에 있게 되는 식이다. Handy가 최소 개수의 명령으로 날짜를 갱신하는 알고리즘을 작성할 수 있도록 도와주자.
입력
첫 번째 줄이자 유일한 입력 줄에는 두 정수 과 가 주어진다. (, ) 은 나노봇의 수, 는 회전할 칸 수를 나타낸다.
출력
출력의 첫 줄에는 사용한 reverse 명령의 수 을 출력한다. 다음 개의 각 줄에는 두 정수 와 를 출력한다. () 이는 다음 명령이 reverse 임을 의미한다.