Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Для начала, если n не делится на 4, то ответ равен «NO», потому что четности половин не сойдутся. Иначе ответ всегда «YES». Давайте будем строить его следующим образом: сначала создадим массив [2,4,6,…,n,1,3,5,…,n−1]. Этот массив является почти хорошим, кроме одной вещи: сумма в правой половине ровно на n2 меньше суммы в левой половине. Итак, мы можем легко это исправить: нужно просто прибавить n2 к последнему элементу.
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- // freopen("output.txt", "w", stdout);
- #endif
- int t;
- cin >> t;
- while (t--) {
- int n;
- cin >> n;
- n /= 2;
- if (n & 1) {
- cout << "NO" << endl;
- continue;
- }
- cout << "YES" << endl;
- for (int i = 1; i <= n; ++i) {
- cout << i * 2 << " ";
- }
- for (int i = 1; i < n; ++i) {
- cout << i * 2 - 1 << " ";
- }
- cout << 3 * n - 1 << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment