Gần bằng nhau
Nộp bài giải
Điểm:
3,00 (OI)
Giới hạn thời gian:
1.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Cho số nguyên . Bạn cần sắp xếp các số từ đến , mỗi số xuất hiện đúng một lần, trên một vòng tròn, sao cho điều kiện sau được thỏa mãn:
Với mỗi số liên tiếp trên vòng tròn, ghi tổng của chúng ra bảng. Khi đó, hai số bất kỳ trong tổng được ghi trên bảng chênh lệch nhau không quá .
Ví dụ với , một cách sắp xếp hợp lệ là (vòng tròn): các tổng số liên tiếp là , , , , , — chênh lệch tối đa là .
Dữ liệu vào
Một dòng duy nhất chứa một số nguyên ().
Dữ liệu ra
Nếu không tồn tại cách sắp xếp, in ra "NO" trên một dòng.
Ngược lại, in "YES" trên dòng đầu tiên. Dòng thứ hai in ra số — các số từ đến theo thứ tự xuất hiện trên vòng tròn. Mỗi số chỉ được xuất hiện đúng một lần. Nếu có nhiều cách sắp xếp, in ra cách bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 | YES 1 4 5 2 3 6 |
Các tổng cửa sổ kích thước trên vòng tròn lần lượt là , chênh lệch tối đa là . |
| 4 | NO | Có thể chứng minh rằng với không tồn tại cách sắp xếp thỏa mãn. |
Bình luận