CSES - Two Sets | Hai tập hợp

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: 900 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Việc của bạn là chia các số \(1, 2, \ldots, n\) thành hai dãy số có tổng bằng nhau.

Input

  • Một dòng duy nhất là số nguyên \(n\) \((1 \leq n \leq 10^6)\).

Output

  • In ra YES, nếu tồn tại cách chia, ngược lại in ra NO.
  • Trong trường hợp có cách chia như thế, in ra một ví dụ về cách tạo ra hai dãy. Đầu tiên, in ra số lượng phần tử của dãy thứ nhất theo sau là các phần tử đó ở dòng tiếp theo. Sau đó in ra dãy thứ hai theo cách tương tự.

Example

Test 1

Input
7
Output
YES
4
1 2 4 7
3
3 5 6

Test 2

Input
6
Output
NO

Bình luận (10)

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