trang chủ / đề bài / kamazing

Số k-tuyệt-vời

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên, đánh số từ 1 đến n.

Với một số nguyên k, ta gọi số k-tuyệt-vời của mảng là giá trị nhỏ nhất xuất hiện trong tất cả các đoạn con liên tiếp có độ dài đúng bằng k (một đoạn con độ dài k là một dãy gồm k phần tử liên tiếp của a). Nếu không có giá trị nào cùng xuất hiện trong mọi đoạn con độ dài k, thì số k-tuyệt-vời bằng −1.

Với mỗi k từ 1 đến n, hãy tính số k-tuyệt-vời của mảng a.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng bộ dữ liệu. Sau đó là t bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên n — số phần tử của mảng.
    • Dòng thứ hai chứa n số nguyên a1,a2,…,an — các phần tử của mảng.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra n số nguyên trên một dòng, trong đó số thứ i là số i-tuyệt-vời của mảng.

Ràng buộc

  • 1≤t≤1000
  • 1≤n≤3·105
  • 1≤ai≤n
  • Tổng của n trên tất cả các bộ dữ liệu không vượt quá 3·105.

Ví dụ

Input Output Giải thích
3
5
1 2 3 4 5
5
4 4 4 4 2
6
1 3 1 5 3 1
-1 -1 3 2 1
-1 4 4 4 2
-1 -1 1 1 1 1
Bộ 1: các giá trị đều phân biệt. Với k=1,2 không giá trị nào phủ hết mọi đoạn nên là −1. Với k=3, giá trị nhỏ nhất phủ mọi đoạn độ dài 3 là 3. Bộ 3: giá trị 1 ở các vị trí 1, 3, 6; khoảng cách lớn nhất giữa hai lần xuất hiện liên tiếp (kể cả hai đầu) là 3, nên từ k=3 trở đi đáp án là 1.
1
7
1 2 2 2 2 2 1
-1 2 2 2 2 1 1 Giá trị 2 nằm ở các vị trí 2..6; khoảng trống ở hai đầu (trước vị trí 2 và sau vị trí 6) đều là 2, nên từ k=2 giá trị 2 phủ mọi đoạn. Giá trị 1 ở vị trí 1 và 7; khoảng cách lớn nhất giữa hai lần xuất hiện là 6, nên từ k=6 giá trị 1 (nhỏ hơn) trở thành đáp án.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0