완전 그래프와 쿼리

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

요약
정점에 대한 1번과 2번 쿼리를 최소 횟수로 골라 모든 정점 쌍이 간선으로 이어지게 만든다.
난이도

보통10점 중 6점

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

문제

33 이상의 양의 정수 NN이 주어졌을 때, NN개의 정점을 갖는 그래프를 구성하려고 한다. 초기 상태에서 그래프는 NN개의 정점으로 이루어져 있으며, 모든 정점 사이에 간선이 없는 상태이다. 각 정점에는 11부터 NN까지의 번호가 부여되어 있다. 두 종류의 쿼리를 수행하여 정점 사이에 간선을 추가할 수 있다.

  • 1 vv: x≠vx \neq v인 NN 이하의 모든 양의 정수 xx에 대해, gcd⁡(x,v)=1\gcd(x, v) = 1을 만족하면 두 정점 xx와 vv를 잇는 간선을 추가한다.
  • 2 vv: x≠vx \neq v인 NN 이하의 모든 양의 정수 xx에 대해, gcd⁡(x,v)>1\gcd(x, v) > 1을 만족하면 두 정점 xx와 vv를 잇는 간선을 추가한다.

쿼리를 수행하여 만들어진 그래프가 완전 그래프가 되도록 하는 최소 쿼리 수행 횟수와 그 쿼리를 출력하시오.

입력

첫 번째 줄에 양의 정수 NN이 주어진다. (3≤N≤100,000)(3 \leq N \leq 100\\,000)

출력

첫 번째 줄에 완전 그래프를 만드는 최소 쿼리 수행 횟수 KK를 출력한다.

다음 KK개의 줄에 걸쳐, ii번째 줄에 각 쿼리의 종류 q∈1,2q \in \\{1, 2\\}와 정점 번호 vv를 공백으로 구분하여 출력한다.

가능한 답이 여러 개면, 그중 아무거나 출력해도 된다.

힌트

완전 그래프는 그래프의 모든 정점 쌍 사이에 간선이 존재하는 그래프를 의미한다.

예제2

  1. 예제 1

    입력
    3
    
    예상 출력
    2
    1 1
    1 2
    
  2. 예제 2

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