DIVSEQQ - Chia đoạn

Giới hạn
  • Thời gian: 0.4s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

 

Cho dãy A gồm N phần tử. Cho Q truy vấn dạng (u, v) tìm e nhỏ nhất sao cho từ e tới u có thể chia thành x (x <= v) đoạn liên tiếp sao cho mỗi đoạn có tổng <= M.

Input

Dòng đầu chứa N, Q, M (M <= 10^9 )

Dòng thứ 2 chứa N số biểu diễn dãy A. (0 <= Ai <= M)

Q dòng sau, dòng thứ i chứa 2 số u, v mô tả truy vấn thứ i. (0 < u <= N, 0 < v <= 10^9)

Output

Gồm Q dòng

Dòng thứ i chứa kết quả của truy vấn thứ i

Example

Input:
5 2 8
1 2 3 4 5
4 2
5 2

Output:
1
3

Subtask 1: (21 tests)

N, Q <= 2000

Subtask 2: (10 tests)

N, Q <= 100000.

 


  • Người up: cho_thanhan
  • Nguồn bài: Sưu tầm