CSES - NOI 2024 - Results
Submission details
Task:Chair Game
Sender:Akseli Järvinen
Submission time:2024-03-06 16:50:18 +0200
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp:1:1: error: 'include' does not name a type
    1 | include <bits/stdc++.h>
      | ^~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:7:5: error: 'cin' was not declared in this scope
    7 |     cin.tie(0) -> sync_with_stdio(0);
      |     ^~~
input/code.cpp:13:9: error: 'vector' was not declared in this scope
   13 |         vector<int> a(n);
      |         ^~~~~~
input/code.cpp:2:13: error: expected primary-expression before 'long'
    2 | #define int long long
      |             ^~~~
input/code.cpp:13:16: note: in expansion of macro 'int'
   13 |         vector<int> a(n);
      |                ^~~
input/code.cpp:14:23: error: 'a' was not declared in this scope
   14 |         for (int &i : a)
      |                       ^
input/code.cpp:17:18: error: 'a' was not declared in this scope
   17 |         sort(all(a));
      |                  ^
input/code.cpp:3:16: note: in definition of macro 'all'
    3 | #define all(x) x.begin(), x.end()
      |...

Code

include <bits/stdc++.h>
#define int long long
#define all(x) x.begin(), x.end()
using namespace std;
 
signed main() {
    cin.tie(0) -> sync_with_stdio(0);
    int tt;
    cin >> tt;
    while (tt--) {
        int n;
        cin >> n;
        vector<int> a(n);
        for (int &i : a)
            cin >> i;
        
        sort(all(a));
        bool ok = 1;
        set<int> st;
        for (int i = 0; i < n; ++i) {
            st.insert(a[i]);
            if (a[i] != i+1) {
                ok = 0;
            }
        }
        if (st.size() == 2 && *st.begin() == 1 && *(++st.begin()) == 2) {
            cout << "NO\n";
        }
        else if (ok) {
            if (n & 1) {
            cout << "YES\n";
            for (int i : a) 
                cout << i << ' ';
            cout << '\n';
            }
            else {
                cout << "NO\n";
            }
        }
        else {
            vector<int> ans;
            
            do {
                vector<bool> filled(n,0);
                for (int i = 0; i < n; ++i) {
                    filled[(i+a[i])%n] = 1;
                }
                bool ok = 1;
                for (int i = 0; i < n; ++i) {
                    if (!filled[i])
                        ok = 0;
                }
                if (ok) {
                    ans = a;
                    break;
                }
            } while (next_permutation(a.begin(),a.end()));
            if (!ans.size()) {
                cout << "NO\n";
            }
            else {
                cout << "YES\n";
                for (int i : ans)
                    cout << i << ' ';
                cout << '\n';
            }
        }
    }
}