ProgMe

Codeforces_forever Round #1 (Div3) A

Apr 30th, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. Для начала, если n не делится на 4, то ответ равен «NO», потому что четности половин не сойдутся. Иначе ответ всегда «YES». Давайте будем строить его следующим образом: сначала создадим массив [2,4,6,…,n,1,3,5,…,n−1]. Этот массив является почти хорошим, кроме одной вещи: сумма в правой половине ровно на n2 меньше суммы в левой половине. Итак, мы можем легко это исправить: нужно просто прибавить n2 к последнему элементу.
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. #ifdef _DEBUG
  8. freopen("input.txt", "r", stdin);
  9. // freopen("output.txt", "w", stdout);
  10. #endif
  11.  
  12. int t;
  13. cin >> t;
  14. while (t--) {
  15. int n;
  16. cin >> n;
  17. n /= 2;
  18. if (n & 1) {
  19. cout << "NO" << endl;
  20. continue;
  21. }
  22. cout << "YES" << endl;
  23. for (int i = 1; i <= n; ++i) {
  24. cout << i * 2 << " ";
  25. }
  26. for (int i = 1; i < n; ++i) {
  27. cout << i * 2 - 1 << " ";
  28. }
  29. cout << 3 * n - 1 << endl;
  30. }
  31.  
  32. return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment