HackDream Purple 04-C: Trọng số xâu

Xem PDF

Nộp bài


Điểm: 100 (thành phần)
Thời gian: 2.0s
Python 6.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Purple định nghĩa trọng số của xâu con liên tiếp từ ~L~ đến ~R~ của xâu ~S~ là tổng chênh lệch giữa vị trí đầu tiên và vị trí cuối cùng của từng kí tự trong xâu con đó. Ví dụ:

  • Xâu con “abcba” sẽ có trọng số là ~(5-1)+(4-2)+(3-3)=6~.

Giải thích:

Xâu trên gồm ba kí tự khác nhau là ~a~, ~b~, ~c~

  • Vị trí đầu tiên mà ~a~ xuất hiện là 1, vị trí cuối cùng mà ~a~ xuất hiện là 5.
  • Vị trí đầu tiên mà ~b~ xuất hiện là 2, vị trí cuối cùng mà ~b~ xuất hiện là 4.
  • Vị trí đầu tiên mà ~c~ xuất hiện là 3, vị trí cuối cùng mà ~c~ xuất hiện là 5.

Yêu cầu

Cho xâu ~S~ gồm ~N~ kí tự in thường và ~Q~ truy vấn ~L~, ~R~. Các bạn hãy giúp Tun tính trọng số của xâu con từ ~L~ đến ~R~ nhé.

Input

  • Dòng 1 gồm 2 số nguyên dương ~N~, ~Q~ ~(1 \leq N, Q \leq 2*10^6)~;
  • Dòng 2 là xâu ~S~ có ~N~ kí tự in thường;
  • ~Q~ dòng tiếp theo mỗi dòng gồm 2 số nguyên dương ~L~, ~R~ ~(1 \leq L, R \leq N)~ biểu diễn truy vấn.

Output

In ra ~Q~ dòng là kết quả cho ~Q~ truy vấn.

Sample Input

7 3
abbdcad
2 4
1 7
3 6

Sample Output

1
9
0

Giải thích

  • Trọng số đoạn ~[2, 4]~ là ~(3-2)+(4-4)=1~;
  • Trọng số đoạn ~[1, 7]~ là ~(6-1)+(3-2)+(5-5)+(7-4) = 9~;
  • Trọng số đoạn ~[3, 6]~ là ~(3-3)+(4-4)+(5-5)+(6-6) = 0~;

Subtask

  • Có 30% số test ứng với 30% số điểm có ~N, Q \leq 10^3~;
  • Có 30% số test ứng với 30% số điểm có ~N, Q ≤ 10^5~;
  • 40% số test còn lại tương ứng với 40% số điểm không có giới hạn gì thêm.

Bình luận đầu tiên

Bình luận

Không có bình luận nào.