CSES - Datatähti Open 2021 - Results
Submission details
Task:Sorting
Sender:vishesh312
Submission time:2021-01-31 22:13:22 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#2--2details
#3ACCEPTED0.27 s1, 2details
#4--1, 2details

Code

#include "bits/stdc++.h"
using namespace std;
/*
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>;
*/

#define all(x) begin(x), end(x)
#define sz(x) (int)x.size()

typedef long long ll;
const int mod = 1e9+7;

void solve(int tc) {
    int n;
    cin >> n;
    vector<int> v(n);
    for (auto &x : v) cin >> x;
    map<vector<int>, bool> vis;
    vis[v] = true;
    queue<vector<int>> q;
    q.push(v);
    bool srt = false;
    while (!q.empty()) {
        auto a = q.front();
        q.pop();
        if (is_sorted(all(a))) {
            srt = true;
            break;
        }
        for (int first_index = 0; first_index < n-1; ++first_index) {
            for (int second_index = first_index+2; second_index < n-1; ++second_index) {
                auto temp = a;
                swap(temp[first_index], temp[second_index]);
                swap(temp[first_index+1], temp[second_index+1]);
                if (!vis[temp]) {
                    vis[temp] = true;
                    q.push(temp);
                }
            }
        }
    }
    cout << (srt ? "YES\n" : "NO\n");
}

signed main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    int tc = 1;
    cin >> tc;
    for (int i = 1; i <= tc; ++i) solve(i);
    return 0;
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
153
1
1
2
1 2
...

correct output
YES
YES
NO
NO
NO
...

user output
YES
YES
NO
NO
NO
...
Truncated

Test 2

Group: 2

Verdict:

input
1000
59
35 29 32 50 11 15 9 21 19 45 2...

correct output
YES
NO
YES
NO
YES
...

user output
(empty)

Test 3

Group: 1, 2

Verdict: ACCEPTED

input
720
6
1 6 4 5 2 3
6
6 3 2 1 5 4
...

correct output
YES
NO
NO
NO
YES
...

user output
YES
NO
NO
NO
YES
...
Truncated

Test 4

Group: 1, 2

Verdict:

input
1000
8
7 4 2 8 6 3 5 1
8
3 8 2 7 5 4 6 1
...

correct output
NO
NO
YES
NO
YES
...

user output
(empty)