1. 2. Instrucțiuni
1.1. Structura liniară
1.2. Structura alternativă
1.3. Structura repetitivă
1.4. Echivalențe de structuri repetitive
1.4.1. https://docs.google.com/document/d/1qTuwuKX5GSN3VSOfXnGfnlfkUDQkwdEtWSP-kBaX32w/edit?usp=sharing
1.5. Instrucțiuni în C++
1.6. Simulări de algoritmi
2. 1. Operatori si expresii
2.1. Lista suplimentară de operatori
2.2. Operații pe biți - nivel avansat
2.3. Tipul char (caracter)
3. Tipuri de algoritmi eficienți
3.1. Eficiență obținută prin prelucrarea direct la citire
3.2. Eficiență obținută prin utilizarea formulelor de calcul
3.3. Eficiență obținută prin utilizarea vectorilor caracteristici/de frecvență
3.4. Eficiență obținută prin interclasare
4. Analiza complexității unui algoritm
4.1. Calculul complexității unui algoritm - principii
4.2. Algoritmi care funcționează în timp liniar
4.3. Algoritmi cu ordin de complexitate polinomial
4.4. Algoritmi cu ordin de complexitate logaritmic
4.5. Algoritmi cu ordin de complexitate exponențial
4.6. Exemple de calcul ordin de complexitate
5. 4. Prelucrarea șirurilor de valori
5.1. Șiruri cu număr cunoscut de elemente (n), prelucrate element cu element.
5.2. Șiruri cu număr cunoscut de elemente (n), pentru care se cere să se precizeze dacă toate elementele îndeplinesc o anumită condiție (proprietate)
5.3. Șiruri cu număr necunoscut de elemente; se vor citi elemente din șir până când se citește valoarea 0 (care nu face parte din șir).
5.4. Șiruri cu număr necunoscut de elemente, pentru care se cere să se precizeze dacă toate (sau niciunul) îndeplinesc o anumită condiție (proprietate)
5.5. Șiruri cu număr necunoscut de elemente; se vor citi elemente din șir până când ultimele două valori citite îndeplinesc o anumită condiție. Din textul problemei se va stabili dacă ultima valoare citită face sau nu parte din șir.
5.6. Pentru un șir dat, aflarea primei valori care îndeplinește o anumită condiție.
5.7. Pentru un șir dat, aflarea ultimei valori care îndeplinește o anumită condiție.
5.8. Șir în care se va verifica o proprietate care implică oricare două elemente vecine în șir.
5.9. Probleme cu secvențe
5.10. Probleme cu subșiruri
6. 5. Algoritmi specifici vectorilor
6.1. Prelucrare secvențială elemente
6.2. Minim/maxim
6.3. Metode de căutare
6.4. Ștergeri și inserări
6.5. Interclasarea a doi vectori ordonați
6.6. Metode de ordonare
6.7. Vectori caracteristici și de frecvență
6.7.1. https://www.pbinfo.ro/articole/5617/vectori-caracteristici-si-de-frecventa
6.8. Ciurul lui Eratostene (generarea unui șir de numere prime)
6.8.1. https://www.pbinfo.ro/articole/2540/ciurul-lui-eratostene
6.8.2. https://www.pbinfo.ro/articole/18904/eratostene-si-alte-ciururi
6.9. Sume parțiale (nivel avansat)
6.9.1. https://www.pbinfo.ro/articole/5615/sume-partiale-in-tablouri
6.10. Șmenul lui Mars (difference arrays) - nivel avansat
6.10.1. https://www.pbinfo.ro/articole/2541/smenul-lui-mars
6.10.2. https://www.geeksforgeeks.org/difference-array-range-update-query-o1/
6.11. Aritmetica numerelor mari (nivel avansat)
6.11.1. https://www.pbinfo.ro/articole/5/aritmetica-numerelor-mari
7. 3. Algoritmi elementari
7.1. Probleme care operează asupra cifrelor unui număr natural
7.2. Divizibilitate. Numere prime. Algoritmul lui Euclid. Descompunere în factori primi
7.2.1. Schema generală pentru determinarea tuturor divizorilor
7.2.2. Determinarea factorilor (divizorilor) primi
7.2.3. Determinarea divizorilor comuni ai două numere naturale
7.3. Calculul unor sume cu termenul general dat. Șirul lui Fibonacci
7.3.1. Sume cu termenul general dat
7.3.2. Șirul Fibonacci
7.3.2.1. Șirul Fibonacci - aplicații
7.4. Baze de numerație
7.5. Determinare minime/maxime
8. 6. Algoritmi specifici matricelor
8.1. Prelucrări elementare ale matricelor. Parcurgeri
8.1.1. https://www.pbinfo.ro/articole/5620/tablouri-bidimensionale
8.2. Matrice pătratice. Zone delimitate de diagonale
8.2.1. https://www.pbinfo.ro/articole/5626/tablouri-patratice
8.3. Generarea elementelor unei matrice
8.4. Sume parțiale pe matrice (nivel avansat)
8.4.1. https://www.pbinfo.ro/articole/5615/sume-partiale-in-tablouri
9. Modele de numărare (nivel avansat)
9.1. Principii de numărare: principiul aditivității, principiul multiplicării, principiul includerii și excluderii
9.2. Modele combinatoriale: permutări, aranjamente, combinări, permutări cu repetiție, permutări fără puncte fixe, numere Catalan
9.2.1. Permutări, aranjamente, combinări, permutări cu repetiție, numere Catalan
9.2.1.1. http://campion.edu.ro/arhiva/www/arhiva_2009/papers/paper20.pdf
9.2.1.2. https://www.pbinfo.ro/articole/18941/elemente-de-combinatorica
9.2.2. Permutări fără puncte fixe
9.2.3. Combinări cu repetiție (stars and bars)
9.3. Modele matriceale: sume parțiale, număr de drumuri într-o structură de tip matrice
9.3.1. Număr de drumuri în matrice
9.3.1.1. https://drive.google.com/file/d/1mH7DPn0uL4rSXx_jhVISEsDhMsWxPNUC/view?usp=sharing
9.3.2. Număr de colorări pe grafuri
9.4. Modele de numărare utilizând formule de recurență
9.4.1. Exemplu problemă:
9.4.2. Soluție: