fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. #define int long long
  5. typedef long long ll;
  6. void splitSquares(int n, int sum) {
  7. int target = sum / 2;
  8. vector<int> group(n + 1, -1);
  9. for (int i = n; i >= 1; i--) {
  10. if (i * i <= target) {
  11. target -= i * i;
  12. group[i] = 0;
  13. }
  14. else group[i] = 1;
  15. }
  16. cout << "YES\n";
  17. for (int i = 1; i <= n; i++) cout << group[i] << " ";
  18. cout << "\n";
  19. }
  20.  
  21. main() {
  22. int n, t;
  23. cin >> t;
  24. while (t--){
  25. cin >> n;
  26. int sum = (ll) (n * (n + 1) * (2 * n + 1)) / 6;
  27. if (sum % 2 != 0) {
  28. cout << "NO\n";
  29. continue;
  30. }
  31. splitSquares(n,sum);
  32. }
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.01s 5520KB
stdin
2
12
7
stdout
YES
0 1 0 1 1 1 0 1 1 1 0 0 
YES
0 0 1 0 1 1 0