Task: | Sorting |
Sender: | nigus |
Submission time: | 2021-01-30 15:16:14 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1, 2 | details |
#2 | WRONG ANSWER | 0.02 s | 2 | details |
#3 | ACCEPTED | 0.01 s | 1, 2 | details |
#4 | ACCEPTED | 0.01 s | 1, 2 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:103:10: warning: unused variable 'b' [-Wunused-variable] ll a,b,c,d; ^ input/code.cpp:103:12: warning: unused variable 'c' [-Wunused-variable] ll a,b,c,d; ^ input/code.cpp:103:14: warning: unused variable 'd' [-Wunused-variable] ll a,b,c,d; ^
Code
#pragma GCC optimize("O3") //#include <bits/stdc++.h>using namespace std;#define rep(i, a, b) for(int i = a; i < (b); ++i)#define per(i, b, a) for(int i = b - 1; i >= a; i--)#define trav(a, x) for(auto& a : x)#define all(x) x.begin(), x.end()#define sz(x) (int)(x).size()typedef long long ll;typedef pair<int, int> pii;typedef pair<ll, ll> pll;typedef vector<int> vi;typedef vector<ll> vl;typedef long double ld;typedef unsigned long long ull;unsigned seed = chrono::system_clock::now().time_since_epoch().count();mt19937 eng(seed);ll random2(){return (1ll << 31ll)*eng()+eng();}ll n,m,k,q,T;const ll big = 1000000007;const ll big2 = 1000000009;const ll mod = 998244353;const int MAXN = 400002;vi A;void answer(bool ans){if(ans){cout << "YES\n";}else{cout << "NO\n";}}set<ll> S;ll has(vi P){ll h = sz(P);trav(a, P){h *= 15264;h += a;}return h;}void bfs(int k){queue<vi> Q;vi temp;rep(c1,0,k){temp.push_back(c1);}Q.push(temp);while(!Q.empty()){vi V = Q.front();Q.pop();ll h = has(V);if(S.find(h) != S.end())continue;S.insert(h);/*if(k == 5){rep(c1,0,k){cerr << V[c1]+1 << " ";}cerr << " hh\n";}*/vi temp2;rep(c1,0,k){temp2.push_back(V[c1]);}rep(c1,0,k-3){swap(temp2[c1], temp2[c1+1]);rep(c2,c1+2,k-1){swap(temp2[c2], temp2[c2+1]);ll h2 = has(temp2);if(S.find(h2) == S.end()){Q.push(temp2);}swap(temp2[c2], temp2[c2+1]);}swap(temp2[c1], temp2[c1+1]);}}}int main() {ios_base::sync_with_stdio(0);cin.tie(0);//freopen("fhc.txt","r",stdin);//freopen("autput.txt","w",stdout);ll a,b,c,d;const int lim = 7;rep(c1,5,lim+1){bfs(c1);}cin >> T;rep(c4,0,T){cin >> n;A.clear();int invs = 0;rep(c1,0,n){cin >> a;a--;A.push_back(a);rep(c2,0,c1){if(A[c2] > a)invs++;}}bool yes = (invs == 0);if(n <= 3){answer(yes);continue;}if(n == 4){yes |= (A[0] == 1 && A[1] == 0 && A[2] == 3 && A[3] == 2);answer(yes);continue;}if(n > 4){if(invs%2 == 1){answer(0);continue;}if(n <= lim){ll h = has(A);if(S.find(h) == S.end()){answer(0);}else{answer(1);}continue;}answer(1);}}return 0;}
Test details
Test 1
Group: 1, 2
Verdict: WRONG ANSWER
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 NO YES NO 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 |