trang chủ / bài tập / takeplace

Sắp xếp xen kẽ chẵn lẻ

Đề bài

Mô tả

William có một mảng gồm n số nguyên a1,a2,,an. Trong một bước, anh ấy có thể đổi chỗ hai phần tử liền kề (hai phần tử aiaj được gọi là liền kề nếu |ij|=1).

William muốn bạn tính số bước đổi chỗ ít nhất để mảng không còn hai phần tử liền kề nào có cùng tính chẵn lẻ.

Dữ liệu vào

Dòng đầu chứa số nguyên t là số bộ test (1t104).

Mỗi bộ test có cấu trúc:

  • Dòng đầu chứa số nguyên n là độ dài mảng (1n105).
  • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ai109).

Tổng các giá trị n trên tất cả các bộ test không vượt quá 105.

Dữ liệu ra

Với mỗi bộ test, in ra số phép đổi chỗ tối thiểu cần thiết, hoặc 1 nếu không thể đạt được trạng thái mà không có hai số liền kề nào có cùng tính chẵn lẻ.

Ràng buộc

  • 1t104
  • 1n105
  • 1ai109
  • Tổng n không vượt quá 105.

Ví dụ

Input Output Giải thích
5
3
6 6 1
1
9
6
1 1 1 2 2 2
2
8 6
6
6 2 3 4 5 1
1
0
3
-1
2
Bộ 1: đổi a2a3[6,1,6].
Bộ 2: chỉ có một phần tử, đã thoả mãn.
Bộ 3: cần 3 phép đổi, ví dụ [1,1,1,2,2,2][1,2,1,2,1,2].
Bộ 4: hai số đều chẵn — không thể.
Bộ 5: đổi (a2,a3)(a4,a5)[6,3,2,5,4,1].
1
7
3 3 4 5 2 4 4
5 Cần sắp xếp để các số chẵn (4,2,4,4) và lẻ (3,3,5) xen kẽ nhau; chi phí tối thiểu là 5 phép đổi liền kề.

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