SIM1010 | ABC

This was the problem page during the contest. Access the current page here.
Time limit: 1s
Memory limit: 256MB
Input: abc.in
Output: abc.out

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 aa de 'a', bb de 'b' și cc de 'c' există? Deoarece răspunsul poate fi foarte mare, afișați restul împărțirii acestuia la 109+710^9+7.

Date de intrare

Pe prima linie a fișierului de intrare abc.in se vor afla trei numere aa, bb și cc.

Date de ieșire

Fișierul de ieșire abc.out va conține restul împărțirii la 109+710^9+7 a numărului de stringuri bune care conțin aa de 'a', bb de 'b' și cc de 'c'.

Restricții și precizări

  • 1a,b,c51051 \le a,b,c \le 5 \cdot 10^5;
  • Pentru 55 puncte, c=1c=1;
  • Pentru încă 2020 de puncte, c=2c=2;
  • Pentru încă 1010 puncte, a,b,c5a,b,c \le 5;
  • Pentru încă 2020 de puncte, a,b,c100a,b,c \le 100;
  • Pentru încă 1515 puncte, a,b,c2 000a,b,c \le 2 \ 000;
  • Pentru restul de 3030 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 109+710^9+7.

Contest info

Virtual contest

Start time: 1710138900000

Total duration: 3h50m0s

Status: Ended

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