끼끼 끼끼 수열 찾기
시간 제한1초메모리 제한1024 MB
A, B, N이 주어질 때 1 이상 N 이하의 모든 정수를 한 번씩 포함하고 인접한 두 수의 차가 정확히 A 또는 B이며 그런 쌍을 모두 한 번씩만 사용하는 수열을 찾아 출력하거나, 없으면 -1을 출력한다.
문제
양의 정수 , , 이 주어질 때 집합 를 S:=\left\\{ \left( x,y \right)\in\mathbb{Z}^2\middle |y-x\in\left\\{ A,B \right\\}\land 1\le x\<y\le N \right\\}으로 정의한다.
아래 조건을 만족하는 수열 를 끼끼 끼끼 수열이라고 한다.
-
이상 이하의 모든 정수는 에 한 개 이상 존재하며, 는 이상 이하의 정수만으로 구성된다.
-
모든 에 대하여 라고 할 때, 다음을 만족한다.
끼끼 끼끼 수열이 존재한다면 가능한 수열을 아무거나 하나 출력하고 그렇지 않다면 -1을 출력하라.
수열은 수를 순서대로 나열한 것으로, 순서가 상관있고, 같은 원소의 중복을 허용한다. 그리고 집합은 수가 포함되는지 여부를 판단하는 것으로, 순서가 상관없고, 같은 원소는 최대 한 번만 포함될 수 있다.
입력
첫 번째 줄에 정수 이 공백으로 구분되어 주어진다.
출력
주어진 입력에 대해 끼끼 끼끼 수열이 있다면 첫 번째 줄에 수열의 길이를 출력한다. 만약 끼끼 끼끼 수열이 없다면 -1을 출력한다.
끼끼 끼끼 수열이 존재한다면 두 번째 줄에 수열의 수들을 차례대로 공백으로 구분하여 출력한다.