Quản Lý Mức Lương

Xem dưới dạng PDF

Gửi bài giải


Điểm: 18
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Bộ phận nhân sự của tập đoàn nơi Bob làm việc cần quản lý mức lương của \(N\) nhân viên. Mỗi nhân viên i ban đầu có một mức lương là A_i. Để đảm bảo chính sách bảo mật và báo cáo quỹ lương hợp lý, Bob cần thực hiện \(Q\) truy vấn thuộc hai loại:

  • 1 pos val: Cập nhật mức lương của nhân viên tại vị trí \(pos\) thành giá trị mới là \(val\).
  • 2 min_val max_val: Đếm xem có bao nhiêu nhân viên hiện tại đang có mức lương nằm trong khoảng từ \(min\_val\) đến \(max\_val\).

Hãy giúp Bob viết chương trình xử lý nhanh các truy vấn này.

Định dạng đầu vào

  • Dòng đầu chứa hai số nguyên dương \(N\) và Q (\(1 \le N, Q \le 10^5\)).
  • Dòng hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) là mức lương ban đầu của các nhân viên (\(1 \le a_i \le 10^9\)).
  • \(Q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn thuộc một trong hai loại trên (\(1 \le pos \le N, 1 \le val, min\_val, max\_val \le 10^9\)).

Định dạng đầu ra

  • Với mỗi truy vấn loại 2, in ra số lượng nhân viên thỏa mãn trên một dòng.

Ví dụ

Input:

5 4
10 20 30 40 50
2 15 45
1 3 15
2 15 45
2 5 12

Output:

3
3
1

Ràng buộc & Subtasks

Subtask Điểm Ràng buộc
1 40% \(N, Q \le 1000\)
2 60% \(N, Q \le 10^5\)

Nhận xét

Không có ý kiến tại thời điểm này.