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

Làm cho mảng tốt

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên.

Một mảng b độ dài m được gọi là tốt nếu ta có thể tạo ra một mảng không giảm c (c1c2cm) từ nó bằng cách lặp lại m lần thao tác sau (ban đầu c rỗng):

  • Chọn phần tử đầu tiên hoặc phần tử cuối cùng của b, xoá nó khỏi b và thêm nó vào cuối mảng c.

Ví dụ, mảng b=[1,2,3,4,4,2,1] là tốt: lần lượt lấy b1, rồi phần tử cuối, rồi phần tử cuối, rồi phần tử đầu, rồi phần tử đầu, rồi phần tử cuối, rồi phần tử còn lại, ta thu được c=[1,1,2,2,3,4,4] là mảng không giảm.

Mảng gồm đúng một phần tử luôn là mảng tốt.

Hãy tìm độ dài nhỏ nhất của một tiền tố của a cần xoá đi để phần còn lại là một mảng tốt. Lưu ý rằng độ dài này có thể bằng 0.

Bạn phải trả lời t bộ dữ liệu độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n là độ dài mảng a.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng chứa một số nguyên: độ dài nhỏ nhất của tiền tố cần xoá để phần còn lại là mảng tốt.

Ràng buộc

  • 1t2·104
  • 1n2·105
  • 1ai2·105
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 2·105

Ví dụ

Input Output Giải thích
5
4
1 2 3 4
7
4 3 3 8 4 5 2
3
1 1 1
7
1 3 1 4 5 3 2
5
5 4 3 2 3
0
4
0
2
3
Bộ 1: mảng đã tốt nên không cần xoá. Bộ 2: xoá 4 phần tử đầu còn [4, 5, 2] là mảng tốt, xoá ít hơn thì không được. Bộ 3: mọi phần tử bằng nhau nên mảng đã tốt.
8
2
1 1
2
2 1
2
1 2
3
2 1 2
3
1 2 1
2
1 200000
2
200000 1
5
5 5 5 1 5
0
0
0
1
0
0
0
3
Mọi mảng độ dài 2 đều tốt. Bộ 4: [2, 1, 2] không tốt vì có "thung lũng" ở giữa, xoá phần tử đầu còn [1, 2]. Bộ 8: [5, 5, 5, 1, 5] phải xoá 3 phần tử đầu, còn [1, 5].

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