| Task: | Sorting |
| Sender: | tutis |
| Submission time: | 2021-01-30 19:28:08 +0200 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 36 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 36 |
| #2 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.07 s | 1, 2 | details |
| #2 | WRONG ANSWER | 0.07 s | 2 | details |
| #3 | ACCEPTED | 0.07 s | 1, 2 | details |
| #4 | ACCEPTED | 0.07 s | 1, 2 | details |
Code
/*input
3
2
1 2
5
2 3 5 1 4
4
2 4 3 1
*/
#pragma GCC optimize ("O3")
#pragma GCC target ("avx2")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template<typename T, typename X>
using ordered_map = tree<T, X, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template<typename T, typename X>
using fast_map = cc_hash_table<T, X>;
//using ull = __uint128_t;
using ull = unsigned long long;
using ll = long long;
using ld = long double;
mt19937_64 rng(123);
const ll mod = 1000000007;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
set<ll>A[10];
for (int n = 1; n <= 8; n++)
{
int p[n + 1];
p[0] = 0;
for (int i = 1; i <= n; i++)
p[i] = i;
function<void()> dfs = [&]()
{
ll v = 0;
for (int i = 1; i <= n; i++)
{
v *= 8;
v += p[i];
}
if (A[n].count(v))
return;
A[n].insert(v);
for (int a = 1; a + 3 <= n; a++)
{
for (int b = a + 2; b < n; b++)
{
swap(p[a], p[b]);
swap(p[a + 1], p[b + 1]);
dfs();
swap(p[a], p[b]);
swap(p[a + 1], p[b + 1]);
}
}
};
dfs();
}
while (t--)
{
int n;
cin >> n;
int p[n + 1];
p[0] = 0;
for (int i = 1; i <= n; i++)
cin >> p[i];
if (n <= 8)
{
ll v = 0;
for (int i = 1; i <= n; i++)
{
v *= 8;
v += p[i];
}
if (A[n].count(v))
cout << "YES\n";
else
cout << "NO\n";
}
else
{
cout << "YES\n";
}
}
}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: WRONG ANSWER
| input |
|---|
| 1000 59 35 29 32 50 11 15 9 21 19 45 2... |
| correct output |
|---|
| YES NO YES NO YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
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: ACCEPTED
| 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 |
|---|
| NO NO YES NO YES ... Truncated |
