bai3tst

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Ami có một dãy \(A\) gồm \(N\) số nguyên. Định nghĩa \(f(l, r) = a[l] + a[l+1] + \dots + a[r] + \max(a[l], a[l+1], \dots, a[r]) - \min(a[l], a[l+1], \dots, a[r])\). Hãy tìm \(f(l, r)\) lớn nhất của dãy \(A\).

Input

  • Dòng đầu tiên chứa một số nguyên dương \(N \le 10^5\) là số lượng phần tử của dãy \(A\).
  • \(N\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(A[i]\) (\(|A[i]| \le 10^9\)), là một phần tử của dãy \(A\).

Output

  • Một dòng duy nhất là giá trị \(f(l, r)\) lớn nhất tìm được.

Example

Test 1

Input
3
1
2
3
Output
8
Note

Ở ví dụ 1, dãy \(A\)\([1, 2, 3]\)\(f(1, 3) = 1 + 2 + 3 + 3 - 1 = 8\).

Test 2

Input
2
-1
-2
Output
-1
Note

Ở ví dụ 2, dãy \(A\)\([-1, -2]\)\(f(1, 1) = -1 + (-1) - (-1) = -1\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.