Cerință
Un string format din literele 'a'
, 'b'
și 'c'
este bun dacă nu există un 'a'
și un 'b'
care să se afle pe poziții consecutive.
De exemplu, aaaa
, c
și bcaacb
sunt bune, pe când bac
și acab
nu sunt bune.
Câte stringuri bune care conțin de 'a'
, de 'b'
și de 'c'
există? Deoarece răspunsul poate fi foarte mare, afișați restul împărțirii acestuia la .
Date de intrare
Pe prima linie a fișierului de intrare abc.in
se vor afla trei numere , și .
Date de ieșire
Fișierul de ieșire abc.out
va conține restul împărțirii la a numărului de stringuri bune care conțin de 'a'
, de 'b'
și de 'c'
.
Restricții și precizări
- ;
- Pentru puncte, ;
- Pentru încă de puncte, ;
- Pentru încă puncte, ;
- Pentru încă de puncte, ;
- Pentru încă puncte, ;
- Pentru restul de de puncte, nu se impun restricții suplimentare.
Exemplul 1
abc.in
1 1 2
abc.out
6
Explicație
Cele 6 stringuri bune sunt: acbc
, accb
, bcac
, bcca
, cacb
și cbca
.
Exemplul 2
abc.in
2 2 2
abc.out
12
Explicație
Cele 12 stringuri bune sunt: aacbbc
, aacbcb
, aaccbb
, acacbb
, acbbca
, bbcaac
, bbcaca
, bbccaa
, bcaacb
, bcbcaa
, caacbb
și cbbcaa
.
Exemplul 3
abc.in
21 35 29
abc.out
306014034
Explicație
Răspunsul trebuie afișat modulo .