pp

Time limit: 0.03s Memory limit: 128MB Input: pp.in Output: pp.out

Se consideră un şir de N numere naturale nenule ordonate crescător a1a2aNa_1 \leq a_2 \leq \dots \leq a_N. În legătură cu acest şir de numere ne interesează perechile de poziţii (i,ji, j) cu 1i<jN1 \leq i < j \leq N şi aiaja_i \neq a_j sau ne interesează suma elementelor anumitor secvențe.

Cerinţă

Se cere să se scrie un program care să citească un număr CC reprezentând tipul cerinţei, un şir de NN numere naturale nenule ordonate crescător a1a2aNa_1 \leq a_2 \leq \dots \leq a_N şi TT perechi de numere naturale (pk,qk)(p_k, q_k) cu 1pk<qkN1 \leq p_k < q_k \leq N şi 1kT1 \leq k \leq T şi apoi:

  • Dacă C=1C = 1, atunci trebuie să se determine pentru fiecare pereche dată de numere naturale (p,q)(p, q) suma apa_p + ap+1a_{p+1} + \dots + aqa_q.
  • Dacă C=2C = 2, atunci trebuie să se determine pentru fiecare pereche dată de numere naturale (p,q)(p, q) numărul de perechi (i,j)(i, j) care respectă simultan condiţiile pi<jqp \leq i < j \leq q şi aiaja_i \neq a_j.

Date de intrare

Fişierul de intrare pp.in conţine pe primul rând numărul natural CC. Pe al doilea rând se află numărul NN. Pe al treilea rând sunt scrise NN numere naturale ordonate crescător şi separate prin câte un spaţiu. Pe al patrulea rând este scris numărul natural TT, iar pe fiecare dintre următoarele TT rânduri câte două numere naturale separate prin câte un spaţiu.

Date de ieșire

Dacă C=1C = 1, atunci fişierul de ieşire pp.out va conţine pe fiecare dintre primele TT linii câte un număr natural. Al kk-lea număr va reprezenta suma elementelor cuprinse între poziţiile pkp_k şi qkq_k inclusiv.
Dacă C=2C = 2, atunci fişierul de ieşire pp.out va conţine pe fiecare dintre primele TT linii câte un număr natural. Al kk-lea număr va reprezenta numărul cerut de perechi de indici cuprinși între poziţiile pkp_k şi qkq_k inclusiv.

Restricții și precizări

  • 1pi<qiN100 0001 \leq p_i < q_i \leq N \leq 100 \ 000
  • 1a1a2aN100 0001 \leq a_1 \leq a_2 \leq \dots \leq a_N \leq 100 \ 000
  • 1T1 0001 \leq T \leq 1 \ 000

Exemplul 1

pp.in

1
5
1 2 3 3 3
2
1 4
2 5

pp.out

9
11

Explicație

Suntem în cazul C=1C = 1. Prima pereche (p,q)(p, q) este (1,4)(1, 4). Suma valorilor din secvență este 11 + 22 + 33 + 33 = 99. A doua pereche (p,q)(p, q) este (2,5)(2, 5). Suma valorilor din secvență este 22 + 33 + 33 + 33 = 1111.

Exemplul 2

pp.in

2
5
1 2 3 3 3
2
1 4
2 5

pp.out

5
3

Explicație

Suntem în cazul C=2C = 2. Prima pereche (p,q)(p, q) este (1,4)(1, 4). Perechile de poziţii care conţin numere diferite între ele sunt (1,2)(1, 2), (1,3)(1, 3), (1,4)(1, 4), (2,3)(2, 3), (2,4)(2, 4). Deci sunt 55 perechi.
A doua pereche (p,q)(p, q) este (2,5)(2, 5). Perechile de poziţii care conţin numere diferite sunt (2,3)(2, 3), (2,4)(2, 4), (2,5)(2, 5). Deci sunt 33 perechi.

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