trang chủ / bài tập / 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

  • 1t1000
  • 1n3·105
  • 1ain
  • 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.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 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