trang chủ / đề bài / hillvalley

Đồi và thung lũng

Đề bài

Mô tả

Cho dãy n số nguyên a1,a2,…,an.

Một chỉ số j (với 2≤j≤n−1) được gọi là đỉnh đồi nếu aj>aj+1 và aj>aj−1; được gọi là thung lũng nếu aj<aj+1 và aj<aj−1.

Độ gồ ghề của dãy là tổng số đỉnh đồi và số thung lũng có trong dãy.

Bạn được phép thay đúng một phần tử của dãy thành một số nguyên tùy ý (không nhất thiết nằm trong khoảng giá trị ban đầu), hoặc giữ nguyên dãy. Hãy tìm độ gồ ghề nhỏ nhất có thể đạt được.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên n.
    • Dòng thứ hai chứa n số nguyên a1,a2,…,an.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng độ gồ ghề nhỏ nhất có thể đạt được.

Ràng buộc

  • 1≤t≤104
  • 1≤n≤3·105
  • 1≤ai≤109
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 3·105.

Ví dụ

Input Output Giải thích
4
3
1 5 3
5
2 2 2 2 2
6
1 6 2 5 2 10
5
1 6 2 5 1
0
0
1
0
Bộ 1: đổi a2 thành 2 thì dãy không còn đỉnh đồi hay thung lũng. Bộ 2: dãy toàn số bằng nhau nên độ gồ ghề đã bằng 0, giữ nguyên. Bộ 3: đổi a3 thành 6 thì chỉ còn một thung lũng tại vị trí 5. Bộ 4: đổi a3 thành 6 thì độ gồ ghề bằng 0.
3
1
5
4
1 2 3 4
6
1 3 2 3 1 4
0
0
1
Bộ 1 và bộ 2: dãy quá ngắn hoặc tăng dần nên không có chỉ số nào là đỉnh đồi hay thung lũng. Bộ 3: ban đầu có 4 vị trí gồ ghề (các chỉ số 2, 3, 4, 5); đổi a3 từ 2 thành 3 thì chỉ còn thung lũng tại chỉ số 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.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