Fişierul intrare/ieşire:slang.in, slang.outSursăONI 2017, baraj gimnaziu
AutorAutor NecunoscutAdăugată detgm000Tudor Mocioi tgm000
Timp execuţie pe test0.1 secLimită de memorie2048 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise

Slang (baraj gimnaziu)

SLang este o versiune a aplicaţiei Scratch care pune la dispoziţie şapte instrucţiuni de tip I1, I2, I3, I4, I5, I6, I7 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 I1 şi se termină cu o instrucţiune de tip I7.
2. Între instrucţiunea de tip I1 şi instrucţiunea de tip I7 vor exista una, două sau mai multe instrucţiuni de tipurile I2, I3, I4, I5 sau I6, 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 I4 poate conţine una sau două instrucţiuni de mişcare (adică de tip I2 sau I3) şi nu poate conţine instrucţiuni de alt tip. De exemplu:

4. Fiecare dintre cele două ramuri ale unei instrucţiuni de tip I5 (ramura daca şi ramura daca nu) poate conţine una sau două instrucţiuni de tip I2 sau I3 şi nu poate conţine instrucţiuni de alt tip.
5. Corpul unei instrucţiuni de tip I6 poate conţine una, două sau mai multe instrucţiuni de tipurile I2, I3, I4, I5 sau I6, 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 I6 existente în program.

Cerinţă

Dat fiind numărul natural K, 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 K;
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 K.

Date de intrare

Fişierul de intrare slang.in conţine pe prima linie un număr natural c reprezentând cerinţa care trebuie să fie rezolvată (1 sau 2).Pe cea de a doua linie se află numărul natural K, reprezentând nivelul de imbricare.

Date de ieşire

Dacă c=1, atunci se va rezolva numai cerinţa 1, 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=2, atunci se va rezolva numai cerinţa 2. Î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 K.

Restricţii

  • 0≤K≤1000
  • 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 6 cifre cerute, este nenulă.
  • Pentru rezolvarea corectă a fiecărei cerinţe se acordă 50 de puncte.

Exemplu

slang.inslang.outExplicaţii
1
0
8674
Cerinţa este 1.
Există 8674 de programe corecte distincte cu nivelul de imbricare 0.
2
0
3 12
Cerinţa este 2.
Numărul minim de instrucţiuni dintr-un program corect cu nivelul de imbricare 0 este 3. Un exemplu de astfel de program este:

Numărul maxim de instrucţiuni dintr-un program corect cu nivelul de imbricare 0 este 12. Un exemplu de astfel de program este:
Trebuie sa te autentifici pentru a trimite solutii. Click aici