McMartin

Time limit: 1s Memory limit: 256MB Input: Output:

Ai, dai, n-ai. Ia nu da, să vezi cum ai.


Într-un viitor nu foarte îndepărtat, orașul era asediat de restaurante fast-food, iar McDonald's devenise un imperiu culinar de neoprit. Însă, în umbră, un erou necunoscut se ridica împotriva acestui gigant – Piedone, un agent de elită al FNCSA.

Cerință

Se dă un șir aa de nn locații McDonald's, aia_i reprezentând numărul de angajați din restaurantul ii, și un număr kk.

Piedone numește o pereche (i,j)(i, j) martin dacă i<ji < j și (ai+aj)≡∑p=i+1j−1ap(modk)(a_i + a_j) \equiv \sum_{p=i+1}^{j-1} a_p \pmod{k}.

Dându-se qq query-uri de tipul (l,r)(l, r), să se determine pentru fiecare câte perechi martin există astfel încât l≤i<j≤rl \leq i < j \leq r.

Date de intrare

Pe prima linie se găsesc două numere întregi, nn și kk.

Pe următoarea linie se află nn numere, separate prin câte un spațiu, reprezentând a1,a2,…,ana_1, a_2, \dots , a_n.

Pe a treia linie se află un număr qq, reprezentând numărul de query-uri.

Pe următoarele qq linii se află câte 2 numere ll și rr, reprezentând subsecvența din query.

Date de ieșire

Pe primele qq linii se vor afla câte un număr, reprezentând răspunsul la fiecare query.

Restricții și precizări

  • 1≤n,k,q≤2×1051 \leq n, k, q \leq 2 \times 10^5;
  • 1≤ai≤1091 \leq a_i \leq 10^9
  • 1≤l<r≤n1 \leq l < r \leq n
# Punctaj Restricții
0 0 Exemplele
1 10 1≤n,q≤5001 \leq n, q \leq 500
2 40 1≤k≤501 \leq k \leq 50
3 50 Fără alte restricții

Exemplul 1

stdin

7 4
8 2 4 3 1 3 2
3
1 7
2 3
3 7

stdout

5
0
3

Log in or sign up to be able to send submissions!