trang chủ / đề bài / colorwalk

Con phố nhiều màu

Đề bài

Mô tả

Có n ngôi nhà nằm trên một con phố, đánh số từ 1 đến n từ trái sang phải. Khoảng cách giữa hai ngôi nhà liền kề bằng 1 đơn vị, nên khoảng cách giữa nhà i và nhà j là |j−i| đơn vị.

Ngôi nhà thứ i được sơn màu ci. Đảm bảo có ít nhất hai ngôi nhà khác màu nhau.

Bạn cần chọn hai ngôi nhà i và j với 1≤i<j≤n sao cho chúng khác màu, tức ci≠cj, và khoảng cách j−i giữa chúng là lớn nhất có thể.

Hãy tìm khoảng cách lớn nhất đó.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n: số ngôi nhà.
  • Dòng thứ hai chứa n số nguyên c1,c2,…,cn: màu của các ngôi nhà.

Dữ liệu ra

  • In ra một số nguyên: khoảng cách lớn nhất có thể chọn được.

Ràng buộc

  • 3≤n≤300000
  • 1≤ci≤n
  • Đảm bảo tồn tại cặp chỉ số i<j với ci≠cj.

Ví dụ

Input Output Giải thích
5
1 2 3 2 3
4 Chọn nhà 1 và nhà 5: màu 1≠3, khoảng cách 5−1=4.
3
1 2 1
1 Nhà 1 và nhà 3 cùng màu 1, nên chỉ có thể chọn cặp kề nhau, khoảng cách 1.
7
1 1 3 1 1 1 1
4 Chọn nhà 3 (màu 3) và nhà 7 (màu 1): khoảng cách 7−3=4.

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