Pentru orice șir de numere, definim noțiunile de putere a unei valori și de putere totală.
Fie un șir de numere și fie o valoare care apare în acest șir. Notăm cu numărul de poziții (cu ) pentru care . Puterea valorii în șirul este definită ca
Puterea totală a șirului este suma puterilor tuturor valorilor distincte care apar în (fiecare valoare distinctă fiind luată în calcul o singură dată):
Cerință
Se citește o valoare , care precizează tipul cerinței.
Cerința 1 (). Se dă un șir și operații. O operație este descrisă printr-o pereche și constă în atribuirea . Operațiile se aplică în ordinea în care sunt date, iar efectele lor sunt persistente (fiecare operație modifică șirul curent).
Înainte de aplicarea oricărei operații, precum și după fiecare operație, trebuie să calculați suma puterilor totale ale tuturor subsecvențelor șirului , fiecare subsecvență fiind considerată separat. O subsecvență este formată din elementele aflate pe poziții consecutive, adică pentru .
Cerința 2 (). Se dă un arbore cu noduri, numerotate de la la . Fiecare nod conține valoarea . Se dau, de asemenea, operații de forma , cu același efect ca mai sus: valoarea nodului devine , modificările fiind persistente.
Înainte de aplicarea oricărei operații, precum și după fiecare operație, trebuie să calculați suma puterilor totale ale tuturor lanțurilor din arbore, fiecare lanț fiind considerat separat o singură dată. Un lanț este determinat de o pereche de noduri , cu , și este format din șirul valorilor nodurilor aflate pe drumul simplu (unic în arbore) dintre și .
În ambele cerințe, deoarece rezultatele pot fi foarte mari, fiecare valoare cerută se va afișa modulo .
Date de intrare
Prima linie conține un întreg , egal cu sau cu , reprezentând tipul cerinței.
A doua linie conține întregul , numărul de elemente ale șirului (respectiv numărul de noduri ale arborelui dacă ).
A treia linie conține cele valori , separate prin spații.
Dacă :
- linia următoare conține întregul , numărul de operații;
- fiecare dintre următoarele linii conține doi întregi și , descriind o operație.
Dacă :
- următoarele linii descriu muchiile arborelui; fiecare conține doi întregi și , ceea ce înseamnă că există o muchie între nodurile și ;
- linia următoare conține întregul , numărul de operații;
- fiecare dintre următoarele linii conține doi întregi și , descriind o operație.
Date de ieșire
Se vor afișa linii. Prima linie conține rezultatul calculat pentru configurația inițială, înainte de aplicarea oricărei operații. Pentru fiecare cu , linia conține rezultatul calculat după aplicarea primelor operații. Fiecare rezultat se afișează modulo .
Restricții și precizări
- , pentru orice
- , pentru fiecare operație
- , pentru fiecare operație
- Pentru , cele muchii formează un arbore (graf conex și fără cicluri)
- Toate rezultatele se afișează modulo .
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 3 | , , |
| 2 | 8 | , , |
| 3 | 13 | , , |
| 4 | 24 | , , |
| 5 | 19 | , |
| 6 | 14 | , |
| 7 | 4 | , , |
| 8 | 6 | , |
| 9 | 9 | , |
Exemplul 1
puterea-p.in
1
4
1 2 1 3
1
3 2
puterea-p.out
26
22
Explicație
Acest exemplu corespunde cerinței , cu și șirul inițial .
Subsecvențele de lungime au puterea totală (o singură valoare apare o dată, deci ).
Pentru celelalte subsecvențe:
- , și au fiecare două valori distincte, deci putere totală .
- : , , , putere .
- : toate distincte, , putere .
- : , , , , putere .
Suma este , valoarea afișată pe prima linie.
După operația , șirul devine . Recalculând (de exemplu, subsecvența are acum puterea ), suma puterilor totale devine .
Exemplul 2
puterea-p.in
2
4
1 2 2 3
1 2
1 3
1 4
1
1 2
puterea-p.out
22
10
Explicație
Acest exemplu corespunde cerinței , cu . Nodul este conectat cu nodurile , și (asemenea figurii de mai jos), iar valorile inițiale sunt , , , .

Lanțurile formate dintr-un singur nod au puterea totală . Pentru perechile de noduri distincte:
- : valorile , putere .
- : valorile , putere .
- : valorile , putere .
- : drumul ––, valorile , deci , , , putere .
- : drumul ––, valorile , putere .
- : drumul ––, valorile , putere .
Suma este , valoarea afișată pe prima linie.
După operația , valorile devin . Acum lanțurile , și au puterea , lanțul are puterea , iar lanțurile și au fiecare puterea . Suma devine .