Wilbur và Dãy Số

Đề bài

Mô tả

Cho một dãy số a gồm n phần tử, ban đầu tất cả các phần tử đều bằng 0: a1=a2=…=an=0.

Tại mỗi bước, bạn được chọn một chỉ số i bất kỳ và thực hiện một trong hai thao tác:

  • Cộng 1 vào tất cả các phần tử ai,ai+1,…,an (hậu tố bắt đầu từ i).
  • Trừ 1 khỏi tất cả các phần tử ai,ai+1,…,an.

Cho dãy mục tiêu b1,b2,…,bn. Hãy tìm số bước ít nhất để biến dãy a thành dãy b (tức ai=bi với mọi i).

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n — độ dài của dãy.
  • Dòng thứ hai chứa n số nguyên b1,b2,…,bn.

Dữ liệu ra

  • In ra một số nguyên duy nhất — số bước ít nhất cần thực hiện.

Ràng buộc

  • 1≤n≤2·105
  • −109≤bi≤109

Ví dụ

Input Output Giải thích
5
1 2 3 4 5
5 Lần lượt chọn các chỉ số 1,2,3,4,5 và cộng 1 vào hậu tố tương ứng.
4
1 2 2 1
3 Chọn chỉ số 1 và 2 cộng 1 vào hậu tố tương ứng (được 1 2 2 2), sau đó chọn chỉ số 4 và trừ 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.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