AquaMoon và bài toán sắp xếp kỳ lạ

Đề bài

Mô tả

Cho dãy n số nguyên dương a1,a2,,an. Mỗi phần tử có một hướng (trái hoặc phải); ban đầu, mọi phần tử đều có hướng phải.

Bạn có thể thực hiện thao tác sau bất kì số lần (kể cả 0):

  • Chọn hai phần tử kề nhau trong dãy, đổi chỗ chúng. Sau khi đổi chỗ, hướng của cả hai phần tử bị đảo (trái thành phải, phải thành trái).

Hãy xác định xem có cách thực hiện một dãy thao tác sao cho đồng thời xảy ra:

  1. Dãy a trở thành không giảm (đọc từ trái sang phải).
  2. Sau cùng, mọi phần tử lại có hướng phải.

In ra YES nếu được, ngược lại in NO.

Mỗi file dữ liệu chứa nhiều bộ test độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t50) — số bộ test.
  • Với mỗi bộ test:
    • Dòng đầu chứa số nguyên n (1n105).
    • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ai105).

Tổng n trong toàn bộ file không vượt quá 105.

Dữ liệu ra

Với mỗi bộ test, in YES hoặc NO trên một dòng. Có thể in chữ hoa/thường tuỳ ý.

Ràng buộc

  • 1t50
  • 1n105
  • 1ai105
  • Tổng n trong cả file không vượt quá 105.

Ví dụ

Input Output Giải thích
3
4
4 3 2 5
4
3 3 2 2
5
1 2 3 5 4
YES
YES
NO
Test 1: đổi a1,a23425 (hướng L L R R); đổi a2,a33245 (L L R R); đổi a1,a22345 (R R R R). Dãy không giảm và mọi hướng đều phải.
Test 3: không tồn tại cách.
1
3
3 2 2
YES Đổi a1,a2 rồi a2,a3 rồi a1,a2... thực chất chỉ cần đổi chỗ phần tử ở vị trí 1 một số chẵn lần để vừa di chuyển đúng vị trí vừa giữ hướng phải.
1
2
4 3
NO Chỉ có cách đổi chỗ duy nhất nhưng sau đó cả hai có hướng trái.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0