Allp

Time limit: 2.5s Memory limit: 128MB Input: allp.in Output: allp.out

Un șir de numere naturale s1,s2,s3,,sks_1, s_2, s_3, \dots, s_k se numește palindrom dacă si=ski+1s_i = s_{k-i+1} pentru orice ii din intervalul [1,k][1,k].

Spunem că un șir de numere naturale s1,s2,s3,,sks_1, s_2, s_3, \dots, s_k are proprietatea P dacă elementele sale pot fi reordonate astfel încât șirul rezultat să fie palindrom.

Un subșir al șirului a1,a2,a3,,ana_1, a_2, a_3, \dots, a_n este un șir de forma ap1,ap2,ap3,,apka_{p_1}, a_{p_2}, a_{p_3}, \dots , a_{p_k} cu proprietatea că 1p1<p2<<pkn1 \le p_1 < p_2 < \dots < p_k \le n.

Valoarea unui șir s1,s2,s3,,sks_1, s_2, s_3, \dots, s_k, notată cu val(s1,s2,s3,,sk)val(s_1,s_2,s_3,\dots,s_k), este numărul de subșiruri nevide ale șirului ss care au proprietatea P. Două subșiruri se consideră diferite dacă indicii selectați sunt diferiți, chiar dacă elementele sunt aceleași pe toate pozițiile.

Cerință

Se dau un șir de numere naturale v1,v2,v3,,vNv_1, v_2, v_3, \dots, v_N și QQ întrebări de forma (l,r)(l,r). Pentru fiecare întrebare trebuie să aflați val(vl,vl+1,vl+2,,vr)val(v_l,v_{l+1},v_{l+2}, \dots,v_r). Deoarece această valoare poate fi foarte mare, se cere afișarea restului acesteia la împărțirea cu 998 244 353998 \ 244 \ 353.

Date de intrare

Fișierul de intrare allp.in conține pe prima linie numerele NN și QQ. Următoarea linie conține NN numere naturale nenule, elementele șirului vv. Următoarele QQ linii conțin fiecare câte două numere, ll și rr, conform descrierii din enunț.

Date de ieșire

Fișierul de ieșire allp.out conține QQ linii, pe linia ii aflându-se răspunsul la cea de a ii-a întrebare din fișierul de intrare.

Restricții și precizări

  • 1N,Q1061 \leq N, Q \leq 10^6
  • 1vi1091 \leq v_i \leq 10^9 pentru orice ii (1iN)(1 \le i \le N)
  • 1lrN1 \leq l \leq r \le N pentru orice întrebare
# Punctaj Restricții
1 7 1N1001 \le N \le 100, 1Q51 \le Q \le 5, rl9r-l \le 9 pentru orice întrebare
2 10 1vi31 \leq v_i \leq 3, 1N,Q400 0001 \leq N, Q \leq 400 \ 000
3 21 1Q×N5 000 0001 \le Q \times N \le 5 \ 000 \ 000
4 12 1vi1001 \leq v_i \leq 100, N400 000N \leq 400 \ 000, 1Q2 0001 \le Q \le 2 \ 000
5 17 1N,Q600001 \le N, Q \le 60\,000
6 15 1N,Q1200001 \le N, Q \le 120\,000
7 18 Fără restricții suplimentare

Exemplu

allp.in

6 3
1 1 2 3 2 4
1 3
3 6
1 6

allp.out

5
7
19

Explicație

Pentru prima întrebare subșirurile cu proprietatea P sunt formate din următoarele mulțimi de indici: {1}\{1\}, {2}\{2\}, {3}\{3\}, {1,2}\{1,2\}, {1,2,3}\{1,2,3\}.
Pentru a doua întrebare subșirurile cu proprietatea P sunt formate din următoarele mulțimi de indici: {3}\{3\}, {4}\{4\}, {5}\{5\}, {6}\{6\}, {3,5}\{3,5\}, {3,4,5}\{3,4,5\}, {3,5,6}\{3,5,6\}.

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