만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

왕의 퍼즐

시간 제한3초메모리 제한1024 MB

요약
정점이 n개인 연결된 단순 그래프를 만들어 차수의 서로 다른 값이 정확히 k개가 되게 합니다. 불가능하면 NO를 출력합니다.
난이도

보통10점 중 6점

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

문제

킨드릭 왕은 코틀린 왕국의 주권자이다. 왕국에는 nn개의 도시가 있으며, 이 도시들은 양방향 도로로 연결되어야 한다. 네 개의 부처가 다음 조건을 요구한다.

  • 교통디지털인프라부: 모든 도시가 연결되어야 하며, 임의의 두 도시 사이에 경로가 있어야 한다.
  • 환경부: 도시를 자기 자신과 잇는 루프 도로는 허용하지 않는다.
  • 재무부: 두 도시 사이의 도로는 최대 한 개만 있어야 한다.
  • ICPC부: aia_i를 ii번 도시에 연결된 도로의 수라고 할 때, 집합 {a1,…,an}\{a_1, \ldots, a_n\}은 정확히 kk개의 서로 다른 수로 이루어져야 한다.

킨드릭 왕은 ICPC부의 조건 때문에 어려움을 겪고 있어 도움을 청했다. 네 조건을 모두 만족하는 도로 배치를 하나 찾거나, 불가능하다고 알려 달라.

입력

첫 줄에 두 정수 nn과 kk가 주어진다 (1≤k≤n≤5001 \le k \le n \le 500).

출력

조건을 모두 만족할 수 없으면 한 줄에 NO를 출력한다.

만족할 수 있으면 첫 줄에 YES를 출력한다. 둘째 줄에는 도로의 개수 mm (0≤m≤n⋅(n−1)20 \le m \le \frac{n \cdot (n - 1)}{2})을 출력한다. 이어서 mm개의 줄에 도로로 연결할 두 도시의 번호 aa와 bb (1≤a,b≤n1 \le a, b \le n)를 출력한다.

예제2

  1. 예제 1

    입력
    5 2
    
    예상 출력
    YES
    4
    1 2
    1 3
    1 4
    1 5
    
  2. 예제 2

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