Truy vấn max (Trại hè MB 2019)

Xem PDF

Điểm: 1600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hệ thống quản lý nhân sự của công ty \(X\) cần quản lý thông tin về lương của \(n\) nhân viên đánh số từ \(1\) tới \(n\). Lương
khởi điểm của tất cả các nhân viên là \(0\) và hệ thống cần cung cấp hai lệnh:

  • Lệnh cập nhật \(S(i, k)\): Đặt lương cho nhân viên \(i\)\(k (1 < i < n; 0 < k < 10^9)\)
  • Lệnh truy vấn \(Q(i, j)\): Cho biết lương của nhân viên hưởng lương cao nhất trong số các nhân viên từ \(i\) tới \(j\)
    \((1\le i \le j \le n)\)

Yêu cầu: Cho một dãy \(m\) lệnh thuộc một trong hai loại trên, hãy trả lời tất cả các lệnh truy vấn

Input

  • Vào từ file văn bản QUERY.INP

  • Dòng 1 chứa hai số nguyên dương \(n, m \le 10^5\).

  • \(m\) dòng tiếp theo, mỗi dòng chứa thông tin về một lệnh, đầu tiên là một ký tự \(\in\) {\(S\), \(Q\)}:
    • Nếu ký tự đầu dòng là \(S\), tiếp theo là hai số nguyên \(j, k\) cho biết lệnh đó là \(S(i, k)\).
    • Nếu ký tự đầu dòng là \(Q\), tiếp theo là hai số nguyên \(i, j\) cho biết lệnh đó là \(Q(i, j)\)

Output

  • Ghi ra file văn bản QUERY.OUT

  • Tương ứng với mỗi lệnh truy vấn \(Q\) trong file dữ liệu, ghi ra trên một dòng một số nguyên là câu trả lời cho truy
    vấn đó.

Example

Test 1

Input
5 6
S 2 1
S 4 5
Q 2 4
S 3 6
S 2 7
Q 1 4
Output
5
7

Bình luận