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

Pokemon khắp mọi nơi

Đề bài

Mô tả

Có một dãy gồm n căn hộ xếp thành hàng từ trái sang phải, đánh số từ 1 đến n. Mỗi căn hộ chứa đúng một con Pokemon thuộc một loại nào đó, loại của con Pokemon ở căn hộ thứ i được ký hiệu bằng một chữ cái Latinh (phân biệt chữ hoa và chữ thường).

Người chơi được phép đi vào một căn hộ bất kỳ, sau đó chỉ được di chuyển sang căn hộ liền kề bên trái hoặc bên phải, và không được vào lại một căn hộ đã đi qua. Vì vậy các căn hộ được thăm luôn tạo thành một đoạn liên tiếp trên hàng.

Hãy tìm số căn hộ ít nhất cần thăm sao cho thu thập được tất cả các loại Pokemon xuất hiện trong dãy.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số căn hộ.
  • Dòng thứ hai chứa xâu s độ dài n gồm các chữ cái Latinh hoa và thường, ký tự thứ i là loại Pokemon ở căn hộ thứ i.

Dữ liệu ra

In ra một số nguyên: số căn hộ ít nhất cần thăm để thu thập đủ mọi loại Pokemon xuất hiện trong dãy.

Ràng buộc

  • 1n100000
  • s chỉ gồm các chữ cái Latinh hoa và thường (tối đa 52 loại khác nhau).

Ví dụ

Input Output Giải thích
3
AaA
2 2 loại: A và a. Đoạn ngắn nhất chứa cả hai là hai căn hộ đầu (AaA lấy vị trí 1..2).
7
bcAAcbc
3 3 loại: b, c, A. Đoạn từ vị trí 4 đến 6 (Acb) chứa đủ cả ba loại, dài 3.
6
aaBCCe
5 4 loại: a, B, C, e. Bắt buộc phải đi từ vị trí 2 đến 6 (aBCCe), dài 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