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

Đoạn gần như hằng số

Đề bài

Mô tả

Cho dãy n số nguyên a1,a2,,an ghi lại kết quả đo của một đại lượng đang dần tiến tới trạng thái cân bằng. Do phép đo diễn ra liên tục nên giữa hai kết quả liền nhau không có bước nhảy lớn: với mọi 1i<n ta luôn có |ai+1ai|1.

Một đoạn liên tiếp [l,r] (với 1lrn) được gọi là gần như hằng số nếu hiệu giữa giá trị lớn nhất và giá trị nhỏ nhất trong đoạn đó không vượt quá 1. Nói cách khác, nếu M=maxliraim=minlirai thì đoạn [l,r] gần như hằng số khi Mm1.

Hãy tìm độ dài lớn nhất của một đoạn gần như hằng số, trong đó độ dài của đoạn [l,r] là số phần tử rl+1.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n là số lượng kết quả đo.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Một số nguyên duy nhất là độ dài lớn nhất của một đoạn gần như hằng số.

Ràng buộc

  • 2n100000
  • 1ai100000
  • |ai+1ai|1 với mọi 1i<n

Ví dụ

Input Output Giải thích
5
1 2 3 3 2
4 Đoạn dài nhất là [2,5] gồm các giá trị 2 3 3 2, có M=3, m=2 nên Mm=1. Độ dài là 4. Đoạn [1,5] không hợp lệ vì Mm=31=2.
11
5 4 5 5 6 7 8 8 8 7 6
5 Có ba đoạn gần như hằng số độ dài 4 là [1,4], [6,9][7,10], nhưng đoạn [6,10] gồm 7 8 8 8 7 có độ dài 5 là dài nhất.

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 csc 6.12.0.200 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 kotlinc 2.4.10 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 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 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0