Mạng lưới đường Berland

Đề bài

Mô tả

Vương quốc Berland cổ đại có N thành phố, được nối với nhau bởi các con đường hai chiều. Giữa hai thành phố bất kì có nhiều nhất một con đường, và không có con đường nào nối một thành phố với chính nó.

Theo truyền thống, mạng lưới đường được xây dựng sao cho không thể chọn ra ba thành phố mà từ mỗi thành phố đều đi trực tiếp được tới hai thành phố còn lại. Nói cách khác, đồ thị đường đi không chứa chu trình độ dài đúng bằng 3.

Bản đồ đường đi đã thất lạc. Hãy tìm số con đường lớn nhất có thể có trong vương quốc, và dựng lại một mạng lưới đường đạt được số lượng đó.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên N: số thành phố.

Dữ liệu ra

Dòng đầu tiên in ra M: số con đường lớn nhất có thể.

M dòng tiếp theo, mỗi dòng chứa hai số nguyên là chỉ số hai thành phố được nối bởi con đường tương ứng. Các thành phố được đánh số từ 1 đến N.

Nếu có nhiều đáp án, in ra bất kì đáp án nào.

Ràng buộc

  • 1N100

Ví dụ

Input Output Giải thích
3 2
1 2
1 3
Với 3 thành phố, nếu nối đủ cả 3 con đường thì tạo thành chu trình độ dài 3. Bỏ đi một con đường ta còn 2, đây là số lớn nhất.
4 4
1 3
1 4
2 3
2 4
Chia 4 thành phố thành hai nhóm {1,2}{3,4}, nối mọi cặp khác nhóm được 4 con đường. Đáp án 1 2
2 3
3 4
4 1 cũng được chấp nhận.
1 0 Chỉ có một thành phố nên không có con đường nào.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0