Lấp chỗ trống

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên không âm, nhưng một số phần tử đã bị mất và được đánh dấu bằng giá trị 1. Đảm bảo có ít nhất một phần tử bị mất.

Bạn cần chọn một số nguyên k với 0k109 rồi thay tất cả các phần tử bị mất trong mảng bằng k.

Gọi m là hiệu tuyệt đối lớn nhất giữa hai phần tử kề nhau sau khi thay, tức là

m=max1in1|aiai+1|.

Hãy chọn k sao cho m nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng bộ test.
  • Với mỗi bộ test:
    • Dòng đầu chứa số nguyên n — kích thước mảng.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an. Nếu ai=1 thì phần tử thứ i bị mất.

Dữ liệu ra

Với mỗi bộ test, in ra trên một dòng hai số nguyên: giá trị m nhỏ nhất có thể và một số nguyên k (0k109) đạt được giá trị m đó. Nếu có nhiều k hợp lệ, in ra bất kỳ giá trị nào.

Ràng buộc

  • 1t104
  • 2n105
  • 1ai109
  • Mỗi bộ test có ít nhất một phần tử bị mất.
  • Tổng của n trên tất cả các bộ test không vượt quá 4·105.

Ví dụ

Input Output Giải thích
3
5
-1 10 -1 12 -1
6
-1 -1 9 -1 3 -1
2
-1 -1
1 11
3 6
0 0
Bộ 1: chọn k=11, mảng thành [11, 10, 11, 12, 11], hiệu kề lớn nhất là 1.
Bộ 2: chọn k=6, mảng thành [6, 6, 9, 6, 3, 6], hiệu kề lớn nhất là 3.
Bộ 3: mọi phần tử đều bị mất nên mảng thành [0, 0], m=0; mọi k đều hợp lệ.
2
2
0 -1
4
1 -1 3 -1
0 0
1 2
Bộ 1: chọn k=0, mảng thành [0, 0], m=0.
Bộ 2: chọn k=2, mảng thành [1, 2, 3, 2], hiệu kề lớn nhất là 1.

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 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