sistem
Judeţul în care are loc Olimpiada Naţională de Informatică de anul acesta este puţin ciudat. În judeţ există N
oraşe, numerotate de la 1
la N
. Fiecare dintre cele N
oraşe ale judeţului este legat de EXACT alte 2
oraşe, prin străzi bidirecţionale. Şi mai ciudat este faptul că, în cadrul acestui sistem stradal, nu este întotdeauna posibil să ajungi din orice oraş în oricare alt oraş mergând pe străzi. Oricum, locuitorii judeţului sunt mândri de acest sistem al lor şi sunt de părere că nu mai există altul la fel. Dumneavoastră vreţi să le demonstraţi contrariul şi pentru aceasta vreţi să calculaţi câte sisteme stradale distincte cu proprietatea de mai sus există. Două sisteme sunt considerate distincte dacă există cel puţin o stradă între o pereche de oraşe i
şi j
în cadrul primului sistem, care nu există în cadrul celui de-al doilea.
Scrieţi un program care să calculeze câte sisteme stradale distincte există modulo 1 000 000 007
.
Din fişierul sistem.in
veţi citi valoarea întreagă n
, reprezentând numărul de oraşe ale judeţului.
În fişierul sistem.out
veţi afişa o valoare întreagă, reprezentând numărul de sisteme stradale distincte, cu proprietatea că orice oraş este legat prin străzi directe de exact alte 2
oraşe.
3 ≤ n ≤ 100 000
n ≤ 14
n ≤ 100
n ≤ 500
n ≤ 2000
sistem.in
4
sistem.out
3
sistem.in
6
sistem.out
70
sistem.in
776
sistem.out
552369242
Cele 3
soluţii sunt următoarele:
ID: 125
Upload: liviu
Input: sistem.in/sistem.out
Memory limit: 64MB/16MB
Time limit: 0.03s
Author: Mugurel Ionut Andreica
Source: ONI 2002 XI-XII: Ziua 2 Problema 2 (Modificata)