Antena

Time limit: 0.1s Memory limit: 64MB Input: antena.in Output: antena.out

Cerință

Se definește un “arbore antenă” cu nn noduri prin următoarea structură:

  • nn noduri sunt așezate în linie și între oricare două vecine se află o muchie. Aceste noduri sunt numerotate de la 11 la nn.
  • Fiecare dintre cele nn noduri poate avea încă 00, 11 sau 22 vecini laterali.
  • Vecinii laterali sunt etichetați cu valori mai mari decât nn.
  • Un “arbore antenă” are cel puțin nn și cel mult 3n3 \cdot n noduri.

În figura de mai jos avem un arbore antenă cu 1010 noduri, pentru n=5n = 5. Nodurile 11 și 44 au doi vecini laterali, nodurile 22 și 55 nu au vecini laterali, iar nodul 33 are un vecin lateral.

Se dă un arbore antenă cu nn noduri. Să se determine numărul de subarbori conecși pe care îi are arborele dat, rezultatul fiind calculat modulo 109+710^9 + 7.

Date de intrare

Pe prima linie a fișierului de intrare antena.in se află numărul natural nn.
Fiecare dintre următoarele nn linii descriu vecinii laterali ai fiecărui nod de la 11 la nn astfel:

  • Primul număr pe fiecare linie este nvnv reprezentând numărul de vecini laterali (00, 11 sau 22).
  • Următoarele nvnv valori pe linie reprezintă identificatorii vecinilor laterali, distincte și mai mari decât nn.

Date de ieșire

Pe prima linie a fișierului de ieșire antena.out se va găsi un singur număr întreg, care reprezintă numărul de subarbori conecși modulo 109+710^9 + 7.

Restricții și precizări

  • 1n100 0001 \leq n \leq 100 \ 000;
  • 0nv20 \leq nv \leq 2;
  • Numerele care identifică vecinii laterali sunt naturale, distincte și mai mari decât nn.
  • Se garantează că nodurile arborelui sunt etichetate cu numere consecutive de la 11 la numărul total de noduri din arbore (cel puțin nn și cel mult 3n3 \cdot n noduri).
  • Subtaskuri:
# Punctaj Restricții
1 17 1n101 \leq n \leq 10, 1nv21 \leq nv \leq 2
2 20 1n100 0001 \leq n \leq 100 \ 000, nv=0nv = 0 (nu există vecini laterali)
3 38 1n2 0001 \leq n \leq 2 \ 000, 1nv21 \leq nv \leq 2
4 25 1n100 0001 \leq n \leq 100 \ 000, 1nv21 \leq nv \leq 2

Exemplul 1

antena.in

2
2 3 4
1 5

antena.out

17

Explicație

În figura de mai jos se poate observa arborele din exemplu:

Subarborii conecși numărați sunt:

  1. Noduri individuale: (1)(1), (2)(2), (3)(3), (4)(4), (5)(5);
  2. Grupuri de noduri conectate: (1,3)(1,3), (1,4)(1,4), (1,3,4)(1,3,4), (2,5)(2,5), (1,2)(1,2), (1,2,3)(1,2,3), (1,2,4)(1,2,4), (1,2,5)(1,2,5), (1,2,3,4)(1,2,3,4), (1,2,3,5)(1,2,3,5), (1,2,4,5)(1,2,4,5), (1,2,3,4,5)(1,2,3,4,5).

Pentru fiecare grup de noduri dintre paranteze, sunt luate în considerare toate muchiile prezente în arbore între acele noduri.
Numărul total de subarbori conecși este 1717.

Exemplul 2

antena.in

5
2 9 7
0
1 8
2 6 10
0

antena.out

131

Explicație

Acest exemplu corespunde arborelui din enunțul problemei:

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