Trumperika

Time limit: 0.75s Memory limit: 64MB Input: trumperika.in Output: trumperika.out

când vaporul se scufundă, șobolanii se scufundă și ei.

În regatul Tramperika\text{Tramperika} , prea iubitul rege, Murp Dorald\text{Murp Dorald}, se gândește serios cum să-și taxeze cât mai bine discipolii. Regatul este compus din NN districte, fiecare fiind codificat cu un caracter (a,b,,za,b, \dots, z). Toate districtele codificate cu același caracter formează o alianța, iar cu cât alianța este alcătuită dintr-un număr mai mare de districte, cu atât împăratul nostru suveranist își face mai multe griji. Însă consilierul regal, Eleonor\text{Eleonor}, concepe un plan eficient de a calma apele, și cum orice alt om înțelept are face, definește taxa unui interval [l,r][l,r] ca fiind i=azord(i)fr(i)\displaystyle \sum_{i = a}^{z} ord(i)^{fr(i)}, unde fr(i)fr(i) reprezintă câte districte formează o alianța cu codul ii, iar ord(i)ord(i) este egal cu poziția în aflabet a literei ii.

De exemplu, considerăm șirul abacbbc\color{#87CEEB}a \color{#FFC300}b \color{#87CEEB}a \color{#00ff6f}c \color{#FFC300}b \color{#FFC300}b \color{#00ff6f}c, de unde deducem că taxa va fi egală cu 12+23+32+40++260=411^{2} + 2^{3} + 3^{2} + 4^{0} + \dots + 26^{0} = 41.

Regele taxandu-și supușii\text{Regele taxandu-și supușii}

Cerință

Auzind de ideea măreață a lui Eleonor\text{Eleonor}, Dorald\text{Dorald} rămâne uimit, și se întreabă care ar fi suma taxelor tuturor intervalelor. În ciuda înclinațiilor voastre morale, rolul vostru este să calculați suma cerută de rege și să o afișați pe ecran modulo  109+7\text{modulo} \ \ 10^9 + 7.

Date de intrare

Pe prima linie se află TT, numărul de subteste. Pe prima linie din fiecare subtest se află NN, numărul de districte, iar pe următoarea linie se află un șir SS de caractere de lungime NN.

Date de ieșire

Pe fiecare dintre cele TT linii se va afișa suma cerută pentru subtestul aferent.

Restricții și precizări

  • 1T1001 \leq T \leq 100.
  • Fie SmSm suma numerelor de districte din cele TT subteste.
  • 1Sm21051 \leq Sm \leq 2 \cdot 10^5.
    # Scor Restricții
    1 12 1N10,Sm1  0001 \leq N \leq 10, Sm \leq 1 \ \ 000
    2 20 1Sm1041 \leq Sm \leq 10^4
    3 10 Si=aS_i = a
    4 15 T2,Si=a  sau  Si=b și numa˘rul de caractere egale cu b104T \leq 2, S_i = a \ \ \text{sau} \ \ S_i = \text{b și numărul de caractere egale cu b} \leq 10^4
    5 43 Fa˘ra˘ restricții\text{Fără restricții}

Exemplul 1

trumperika.in

5
10
fwcmxivdzu
1
b
10
cqwyywzywh
2
og
5
naovo

trumperika.out

4500
27
281184
118
1407

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