slang

Time limit: 0.1s Memory limit: 2MB Input: slang.in Output: slang.out

SLang este o versiune a aplicației Scratch care pune la dispoziție șapte instrucțiuni de tip I1I1, I2I2, I3I3, I4I4, I5I5, I6I6, I7I7 prezentate în imaginea alăturată.
Un program corect este o succesiune de instrucţiuni care respectă următoarele reguli:

  1. Începe cu o instrucțiune de tip I1I1 şi se termină cu o instrucțiune de tip I7I7.
  2. Între instrucţiunea de tip I1I1 şi instrucţiunea de tip I7I7 vor exista una, două sau mai multe instrucţiuni de tipurile I2I2, I3I3, I4I4, I5I5 sau I6I6, fără a utiliza două instrucţiuni de acelaşi tip; fiecare dintre aceste instrucţiuni poate să conţină alte instrucţiuni, conform cu regulile specificate.
  3. Corpul unei instrucțiuni de tip I4I4 poate conține una sau două instrucțiuni de mișcare (adică de tip I2I2 sau I3I3) și nu poate conține instrucțiuni de alt tip.

De exemplu:

  1. Fiecare dintre cele două ramuri ale unei instrucțiuni de tip I5I5 (ramura daca şi ramura daca nu) poate conține una sau două instrucțiuni de tip I2I2 sau I3I3 și nu poate conține instrucțiuni de alt tip.
  2. Corpul unei instrucțiuni de tip I6 poate conține una, două sau mai multe instrucţiuni de tipurile I2I2, I3I3, I4I4, I5I5 sau I6I6, fără a utiliza două instrucţiuni de acelaşi tip; similar, fiecare dintre aceste instrucţiuni poate să conţină alte instrucţiuni, conform cu regulile specificate.

Nivelul de imbricare al unui program corect va fi egal cu numărul de instrucţiuni de tip I6I6 existente în program.

Exemplu de program corect cu trei instrucțiuni de tip I6I6 (program cu nivelul de imbricare 33). Exemplu de program incorect deoarece o instrucțiune de tip I5I5 nu poate conține o instrucțiune de tip I6I6.

Cerinţă

Dat fiind numărul natural KK, reprezentând nivelul de imbricare, scrieţi un program care să rezolve următoarele cerinţe:

  1. determină numărul de programe corecte distincte cu nivelul de imbricare KK;
  2. determină numărul minim de instrucțiuni și respectiv numărul maxim de instrucțiuni ce pot exista într-un program corect cu nivel de imbricare KK.

Date de intrare

Fișierul de intrare slang.in conține pe prima linie un număr natural cc reprezentând cerinţa care trebuie să fie rezolvată (11 sau 22).Pe cea de a doua linie se află numărul natural KK, reprezentând nivelul de imbricare.

Date de ieșire

Dacă c=1c=1, atunci se va rezolva numai cerința 11, caz în care pe prima linie a fișierului slang.out va fi scris un număr natural reprezentând ultimele șase cifre ale numărului de programe corecte distincte care au nivelul de imbricare K.
Dacă c=2c=2, atunci se va rezolva numai cerința 22. În acest caz, fișierul de ieșire slang.out va conține pe prima linie două numere naturale separate printr-un spațiu, reprezentând numărul minim de instrucțiuni, respectiv numărul maxim de instrucțiuni ale unui program corect cu nivel de imbricare KK.

Restricții și precizări

  • 0K1 0000 \leq K \leq 1 \ 000
  • Două programe sunt distincte dacă în succesiunile de instrucţiuni corespunzătoare există cel puţin o poziţie pe care se află instrucţiuni de tipuri diferite.
  • Se garantează că, pentru datele de test, prima dintre cele 66 cifre cerute, este nenulă.
  • Pentru rezolvarea corectă a fiecărei cerinţe se acordă 5050 de puncte.

Exemplul 1

slang.in

1
0

slang.out

8674

Explicație

Cerinţa este 11.
Există 8 6748 \ 674 de programe corecte distincte cu nivelul de imbricare 00.

Exemplul 2

slang.in

2 0

slang.out

3 12

Explicație

Cerinţa este 22.
Numărul minim de instrucţiuni dintr-un program corect cu nivelul de imbricare 00 este 33. Un exemplu de astfel de program este:

Numărul maxim de instrucţiuni dintr-un program corect cu nivelul de imbricare 00 este 1212. Un exemplu de astfel de program este:

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