Maximum Value Queries

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: 1500 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho mảng \(a\)\(n\) phần tử.
Định nghĩa giá trị của một đoạn con liên tiếp \([i,j]\) là:

\[ a_i+a_{i+1}+\cdots+a_j-(j-i) \]

Nhiệm vụ của bạn là xử lý \(q\) truy vấn thuộc các loại sau:

  1. Gán \(a_p = x\)
  2. Tìm giá trị lớn nhất của một đoạn con liên tiếp nằm hoàn toàn trong đoạn \([l, r]\)

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(q\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\).
  • \(q\) dòng tiếp theo, mỗi dòng chứa một truy vấn:
    • 1 p x: Gán \(a_p = x\).
    • 2 l r: Tìm tổng lớn nhất của một đoạn con liên tiếp trong đoạn \([l, r]\).

Output

  • Với mỗi truy vấn loại 2, in ra tổng lớn nhất tìm được trên một dòng.

Constraints

  • \(1 \le n, q \le 2 \cdot 10^5\)
  • \(-10^9 \le a_i, x \le 10^9\)
  • \(1 \le p \le n\)
  • \(1 \le l \le r \le n\)

Example

Test 1

Input
5 2
1 2 3 4 5
2 1 5
2 2 4
Output
11
7
Note

Với truy vấn đầu tiên, chọn đoạn con \([1,5]\):

\[ 1+2+3+4+5-(5-1)=15-4=11. \]

Với truy vấn thứ hai, chọn đoạn con \([2,4]\):

\[ 2+3+4-(4-2)=9-2=7. \]

Bình luận (1)

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