아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

해밀턴 kk-정점 연결 그래프

시간 제한1초메모리 제한512 MB

요약
정점이 n개인 그래프를 정점 연결도가 정확히 k가 되도록 최소 간선 수로 만들고 해밀턴 사이클까지 출력하거나, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, 그리디, 구현, 수학
정답자
아직 제출이 없습니다

문제

완전 그래프가 아닌 그래프의 연결도가 kk라는 것은, 정점 kk개를 지우면 그래프가 연결되지 않게 되는 최소 크기가 kk라는 뜻이다.

연결된 무방향 그래프 GG가 해밀턴 그래프라는 것은 해밀턴 사이클, 즉 시작점과 끝점이 같은 정점을 제외한 모든 정점을 정확히 한 번씩 방문하는 사이클을 가진다는 뜻이다.

Bobo는 정점이 nn개이고 연결도가 kk인 해밀턴 그래프를 만들려고 한다. 또한 그래프의 간선 개수가 최소가 되어야 한다.

입력

첫 번째 줄에 두 정수 nn과 kk가 주어진다. nn은 그래프의 정점 개수이다 (3≤n≤1003 \leq n \leq 100, 1≤k≤n−21 \leq k \leq n - 2).

출력

그런 그래프가 없으면 −1-1을 한 줄에 출력한다. 그렇지 않으면 최소 간선 개수 mm을 출력한다. 그다음 mm개 줄에 각각 그래프의 간선을 나타내는 두 정수 xx와 yy를 출력한다 (1≤x,y≤n1 \leq x, y \leq n, x≠yx \ne y). 그다음 줄에는 그래프의 해밀턴 사이클을 나타내는 1,2,…,n1, 2, \ldots, n의 순열을 출력한다.

예제1

  1. 예제 1

    입력
    4 2
    
    예상 출력
    4
    1 2
    2 3
    3 4
    4 1
    1 2 3 4