Tra cứu điểm

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Sau vòng loại trực tuyến của một cuộc thi lập trình, hệ thống chấm ghi nhận điểm của ~n~ thí sinh; thí sinh thứ ~i~ đạt ~a_i~ điểm (điểm được cộng dồn qua nhiều bài và có thưởng theo thời gian nộp nên có thể rất lớn).

Ban tổ chức đang cân nhắc các mức điểm để phân hạng giải thưởng. Họ đưa ra ~q~ phương án, phương án thứ ~j~ là một khoảng điểm từ ~lo_j~ đến ~hi_j~, và muốn biết có bao nhiêu thí sinh rơi vào khoảng đó.

Yêu cầu

Với mỗi phương án ~(lo_j, hi_j)~, hãy đếm số thí sinh ~i~ thoả mãn ~lo_j \le a_i \le hi_j~ (tính cả thí sinh đạt đúng ~lo_j~ điểm hoặc đúng ~hi_j~ điểm).

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên ~n~ và ~q~;
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~, các số cách nhau bởi dấu cách;
  • ~q~ dòng tiếp theo, dòng thứ ~j~ chứa hai số nguyên ~lo_j~ và ~hi_j~.

Kết quả ra

Ghi ra ~q~ dòng, dòng thứ ~j~ ghi một số nguyên là câu trả lời cho phương án thứ ~j~.

Ràng buộc

~1 \le n, q \le 2 \cdot 10^5~; ~0 \le a_i \le 10^9~; ~0 \le lo_j \le hi_j \le 10^9~.

  • Subtask 1 (30% số điểm – test 01–06): ~n, q \le 2000~;
  • Subtask 2 (20% số điểm – test 07–10): ~a_i \le 10^5~ và ~hi_j \le 10^5~ với mọi truy vấn;
  • Subtask 3 (50% số điểm – test 11–20): không có ràng buộc bổ sung.

Ví dụ

Dữ liệu vào mẫu 1
6 5
70 55 90 70 30 85
60 80
0 100
91 100
70 70
30 85
Kết quả ra mẫu 1
2
6
0
2
5

Giải thích

Khoảng ~[60, 80]~ chứa hai thí sinh cùng đạt ~70~ điểm; khoảng ~[0, 100]~ chứa cả ~6~ thí sinh; không có thí sinh nào đạt từ ~91~ đến ~100~ điểm; khoảng ~[70, 70]~ chứa hai thí sinh đạt đúng ~70~ điểm; khoảng ~[30, 85]~ chứa mọi thí sinh trừ thí sinh đạt ~90~ điểm (thí sinh đạt đúng ~30~ điểm và đúng ~85~ điểm đều được tính).


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.