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

Dãy bài của Vladik

Đề bài

Mô tả

Cho một dãy gồm n lá bài xếp thành hàng, mỗi lá bài ghi một số nguyên dương không vượt quá 8.

Hãy tìm dãy con dài nhất của dãy bài thỏa mãn đồng thời hai điều kiện sau:

  1. Gọi ck là số lần xuất hiện của số k trong dãy con. Với mọi cặp số i,j (từ 1 đến 8) đều phải có |cicj|1. Nói cách khác, số lần xuất hiện của các số trong dãy con chênh lệch nhau không quá 1.

  2. Nếu trong dãy con có ít nhất một lá bài ghi số x, thì tất cả các lá bài ghi số x trong dãy con phải tạo thành một đoạn liên tiếp (liên tiếp trong dãy con, không nhất thiết liên tiếp trong dãy gốc). Ví dụ dãy con [1,1,2,2] thỏa mãn điều kiện này, còn [1,2,2,1] thì không.

Lưu ý rằng một số có thể hoàn toàn không xuất hiện trong dãy con. Khi đó ck=0 với số k đó, và điều kiện 1 vẫn phải được kiểm tra với giá trị 0 này.

Hãy in ra độ dài của dãy con dài nhất thỏa mãn cả hai điều kiện.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n, số lá bài.
  • Dòng thứ hai chứa n số nguyên dương không vượt quá 8, mô tả dãy bài.

Dữ liệu ra

  • In ra một số nguyên duy nhất: độ dài của dãy con dài nhất thỏa mãn cả hai điều kiện.

Ràng buộc

  • 1n1000
  • Mỗi số trong dãy nằm trong khoảng từ 1 đến 8.

Ví dụ

Input Output Giải thích
3
1 1 1
1 Tất cả các lá bài đều ghi số 1. Nếu lấy nhiều hơn một lá thì có số 1 xuất hiện nhiều lần trong khi các số khác xuất hiện 0 lần, vi phạm điều kiện 1. Vậy chỉ lấy được 1 lá.
24
1 8 1 2 8 2 3 8 3 4 8 4 5 8 5 6 8 6 7 8 7 8 8 8
17 Có thể chọn dãy con trong đó bảy số từ 1 đến 7 mỗi số xuất hiện 2 lần và số 8 xuất hiện 3 lần (tổng 7·2+3=17), các lá cùng số tạo thành đoạn liên tiếp.
8
8 7 6 5 4 3 2 1
8 Mỗi số từ 1 đến 8 xuất hiện đúng một lần, lấy cả 8 lá đều hợp lệ.

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