📌 Despre Varianta 5 din 2020
Varianta 5 din 2020 acoperă operatorul %, recursivitatea, backtracking-ul, arborii și grafurile euleriene, structurile, matricele, șirurile de caractere și fișierele. Este o variantă potrivită pentru exersat lucrul cu cifrele unui număr și cu divizorii.
Subiectul I (20p): 5 grile: valoarea maximă a expresiei x%2020, un subprogram recursiv care afișează * de trei ori, o problemă de backtracking cu băuturi din 3 sau 4 fructe, un „frate” al unui nod într-un arbore dat prin vectorul de „tați” și numărul minim de muchii ale unui graf eulerian cu 5 noduri.
Subiectul al II-lea (40p): Un algoritm în pseudocod care scade dublul cifrelor mai mici decât 5 și adună cifrele de la 5 în sus, o structură procesor pentru cele 20 de tipuri de procesoare dintr-un depozit și o secvență care ordonează crescător doar elementele pare de pe coloana a 3-a a unei matrice.
Subiectul al III-lea (30p): Un subprogram cu divizori (kpn, care returnează al k-lea „p-număr” dintr-un interval), o problemă cu șiruri de caractere în care cuvintele cu număr impar de litere sunt înlocuite cu cuvântul în oglindă și o problemă de eficiență cu numerele de două cifre dintr-un șir citit din fișierul bac.txt.
⚠️ La ce să fii atent
- La I.2: Fii atent la condiția strictă
x>5! La f(17), lanțul de apeluri este 17, 9, 5 și se oprește la 5, deci * se afișează de trei ori. - La I.3: Soluțiile au 3 sau 4 fructe, deci după fiecare soluție de trei fructe vin prelungirile ei la patru. Așa se ajunge ca a șasea soluție să fie
(căpșune, mere, portocale). - La I.5: Un graf eulerian are toate gradele pare. Nodul de grad 4 e legat de toți ceilalți, deci fiecare dintre ei are gradul cel puțin 2. Suma gradelor e cel puțin 12, deci graful are cel puțin 6 muchii.
- La III.2: Cuvintele în oglindă trebuie să fie distincte. Un cuvânt cu număr impar de litere care se citește la fel din ambele capete, ca
reper sau o, nu se înlocuiește. - La III.3: Intervalul
(a,b) este deschis, deci capetele nu fac parte din el. Reține cel mai mic și cel mai mare număr de două cifre, apoi afișează minimul minus 1 și maximul plus 1. În exemplu, din 10 și 40 se obține 9 41.