Time limit: 1s
Memory limit: 256MB
Input: arbset.in
Output: arbset.out
Mioara are un arbore cu noduri, unde rădăcina este nodul , şi unde fiecare nod are câte o valoare între şi . Toate valorile sunt distincte. O submulţime de noduri se numeşte bună dacă şi numai dacă:
- Oricare două noduri , unde este strămoş al lui , satisfac ;
- Pentru oricare două noduri , dacă este cel mai adânc strămos, comun al lui şi , atunci .
Cerință
Mioara este curioasă: care este suma valorilor (adică mărimea lui ) pentru toate mulţimile bune?
Date de intrare
Fişierul de intrare arbset.in
conţine pe primul rând numărul . Pe a doua linie se află valorile . Urmează rânduri, fiecare conţinând două valori si , ce indică existenţa unei muchii de la la .
Date de ieșire
Fişierul de ieşire arbset.out
conţine răspunsul cerut, modulo .
Restricții și precizări
# | Punctaj | Restricții |
---|---|---|
1 | 10 | |
2 | 20 | |
3 | 10 | , oricare nod are cel mult 2 muchii incidente |
4 | 10 | , cel mult 1 nod are mai mult de o muchie incidenta |
5 | 30 | , oricare nod are cel mult 3 muchii incidente |
6 | 20 |
Exemplu
arbset.in
4
2 1 3 4
1 2
1 3
1 4
arbset.out
11
Explicație
Mulţimile bune sunt:
- (cu mărimea );
- , , , (cu mărimea );
- , (cu mărimea );
- (cu mărimea ).
Astfel rezultatul este .