Đường đi

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hãy xây dựng một đồ thị có hướng có không quá \(5 \times 10^5\) đỉnh và \(10^6\) cạnh sao cho thỏa mãn các điều kiện sau:

  • Giữa hai đỉnh chỉ được có tối đa một cạnh;
  • Không tồn tại chu trình;
  • Có chính xác \(k\) đường đi giữa đỉnh \(1\) và đỉnh có chỉ số lớn nhất.

Yêu cầu

  • Hãy xây dựng một đồ thị bất kỳ thỏa mãn các điều kiện trên.

Input

  • Dòng đầu tiên chứa số nguyên \(k\) (\(1 \le k \le 10^{100}\)).

Output

  • Dòng đầu tiên chứa hai số nguyên \(N, M\) lần lượt thể hiện số đỉnh và số cạnh trong đồ thị của bạn.
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(u, v\) mô tả một cạnh nối một chiều từ đỉnh \(u\) đến đỉnh \(v\).

Example

Test 1

Input
4
Output
6 8
1 2
1 3
1 4
1 5
2 6
3 6
4 6
5 6
note

Có 4 con đường là:

  • \(1 \to 2 \to 6\)
  • \(1 \to 3 \to 6\)
  • \(1 \to 4 \to 6\)
  • \(1 \to 5 \to 6\)

Bình luận (1)

Mới nhất
Tải bình luận...