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

Đoạn có đúng K giá trị phân biệt

Đề bài

Mô tả

Cho dãy a gồm n số nguyên a1,a2,,an và một số nguyên k.

Ta gọi [l,r] (1lrn) là một đoạn tốt nếu trong các phần tử al,al+1,,arđúng k giá trị đôi một khác nhau.

Một đoạn tốt [l,r] được gọi là tối tiểu theo quan hệ bao hàm nếu không tồn tại đoạn tốt [x,y] nào khác nằm hoàn toàn bên trong nó, tức là không có [x,y][l,r] thoả mãn lxyr[x,y] cũng là đoạn tốt.

Lưu ý rằng đoạn cần tìm không nhất thiết phải ngắn nhất trong số tất cả các đoạn tốt của dãy, nó chỉ cần không chứa đoạn tốt nào nhỏ hơn bên trong.

Hãy tìm một đoạn tốt tối tiểu theo quan hệ bao hàm.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra hai số nguyên lr cách nhau bởi dấu cách, mô tả một đoạn tốt tối tiểu theo quan hệ bao hàm.

Nếu không tồn tại đoạn nào thoả mãn, in ra -1 -1.

Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n,k105
  • 1ai105

Ví dụ

Input Output Giải thích
4 2
1 2 2 3
1 2 Đoạn [1,2] gồm hai giá trị khác nhau là 12. Không đoạn con thực sự nào của nó (tức [1,1] hoặc [2,2]) có đúng 2 giá trị khác nhau. Đáp án 3 4 cũng được chấp nhận.
8 3
1 1 2 2 3 3 4 5
2 5 Đoạn [2,5] chứa các giá trị 1,2,3. Bỏ đi a2 thì còn 2,2,3 (chỉ 2 giá trị), bỏ đi a5 thì còn 1,2,2 (chỉ 2 giá trị), nên nó tối tiểu theo bao hàm. Nó không phải đoạn ngắn nhất: [6,8] chỉ dài 3 và cũng có 3 giá trị khác nhau, nhưng [6,8] không nằm trong [2,5] nên không vi phạm điều kiện.
7 4
4 7 7 4 7 4 7
-1 -1 Cả dãy chỉ có 2 giá trị khác nhau là 47, không thể có đoạn nào chứa đúng 4 giá trị.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0