Estructures de dades (4) X67584


Statement
 

pdf   zip

Donat un conjunt de números v0,v1,,vn1v_0, v_1, \dots, v_{n-1} i una llista de preguntes, responeu-les eficientment.

Les preguntes són del tipus: donats dos números l,rl, r calculeu la suma de tots els elements viv_i amb lvirl \leq v_i \leq r, mòdul 1012+710^{12} + 7. Després de cada pregunta, afegiu el resultat a la llista, de manera que les següents preguntes també consideraran els anteriors resultats.

Per exemple, suposem que tenim els números [1,2][1, 2] i ens demanen calcular la suma de l=1,r=2l = 1, r = 2. El resultat és 1+2=31 + 2 = 3, i la nostre llista passa a ser [1,2,3][1, 2, 3]. Si ara ens demanen calcular la suma de l=2,r=15l = 2, r = 15 el resultat seria 2+3=52 + 3 = 5. En cas que ara ens demanessin la suma l=2,r=2l = 2, r = 2 el resultat seria 22 i, per tant, la nostra llista passaria a ser [1,2,2,3,5][1,2,2,3,5]. Si ens tornessin a demanar a suma l=2,r=2l = 2, r = 2 ara el resultat seria 44 i la llista seria [1,2,2,3,4,5][1,2,2,3,4,5].

Entrada

L’entrada consisteix en diversos casos, hi ha com a molt 100100 casos. Cada cas comença amb una línia amb dos enters 1n,q51041 \leq n, q \leq 5 \cdot 10^4 - el nombre d’elements del conjunt i el nombre de preguntes. A continuació hi ha una línia amb nn enters v0,v1,,vn1v_0, v_1, \dots, v_{n-1} amb 0vi1012+70 \leq v_i \leq 10^{12} + 7 - els elements del conjunt.

Finalment apareixen qq línies, una per cada pregunta. A cada línia hi ha dos enters 0lr<1012+70 \leq l \leq r < 10^{12} + 7 - els extrems de l’interval del qual es vol calcular la suma.

La suma de les nn i la suma de les qq de tots els casos són ambdues menors a 51055 \cdot 10^5.

Sortida

Per a cada pregunta, calculeu la suma dels elements viv_i tal que lvirl \leq v_i \leq r mòdul 1012+710^{12} + 7, imprimint una resposta per línia.

Public test cases
  • Input

    2 5
    1 2
    1 2
    1 3
    2 2
    1 2
    4 7
    2 3
    4 1000000000006
    0 3
    0 1000000000007
    0 3
    
    

    Output

    3
    6
    2
    5
    11
    0
    3
    3
    
  • Information
    Author
    Max Balsells
    Language
    Catalan
    Official solutions
    C++
    User solutions