Bacalaureat 2026 la informatică: simularea, mate-info
Subiectul oficial din 2026, cu baremul, pe 90 de puncte. Grilele și răspunsurile scurte le verifici pe loc; restul le scrii aici sau pe caiet, apoi te verifici pe barem.
Proba de antrenament dată în școli, de obicei în martie. Nota nu contează.
Pe timp, ca la examen
Ceasul merge și dacă închizi pagina. Poți lua o singură pauză. La final, nota estimată după barem.
Subiectul ISubiectul al II-leaSubiectul al III-lea
Subiectul I 20 p
Textul 1

I.14 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: a) Varianta a
Textul 2

I.24 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: d) Varianta d
Textul 3

I.34 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: a) Varianta a
Textul 4

I.44 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: d) Varianta d
Textul 5

I.54 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: c) Varianta c
Subiectul al II-lea 40 p
Textul 6

II.1.a6 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: 2026
II.1.b6 p
Construiește datele de intrare cerute în fragment.
Verifică-te pe barem
Un exemplu de răspuns
Două exemple sunt 1064 și 3064. Pentru fiecare, cifrele pare sunt 0,6,4; x=460 și y=64, deci minimul este 64. Ambele valori au patru cifre.
Exemplu scris de Zece, nu singurul răspuns bun.
II.1.c10 p
Scrie programul C/C++ corespunzător algoritmului din fragment.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
using namespace std;
int main(){int n,x=0,y=0,p=1,c;cin>>n;
do{c=n%10;n/=10;if(c%2==0){x=x*10+c;y=c*p+y;p*=10;}}while(n!=0);
if(x<y)cout<<x;else cout<<y;return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
II.1.d6 p
Rescrie algoritmul folosind structura repetitivă cerută.
Verifică-te pe barem
Un exemplu de răspuns
citește n
x <- 0; y <- 0; p <- 1
cât timp n>0 execută
c <- n%10; n <- [n/10]
dacă c%2=0 atunci
x <- x*10+c
y <- c*p+y; p <- p*10
dacă x<y atunci scrie x
altfel scrie yExemplu scris de Zece, nu singurul răspuns bun.
Textul 7

II.26 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
De exemplu: prima componentă are 1 nod și 0 muchii, iar a doua are 27 de noduri și 26 de muchii. Fiecare componentă conexă fără cicluri este arbore, deci m_i=n_i-1; în total sunt 28 de noduri.
Exemplu scris de Zece, nu singurul răspuns bun.
Textul 8

II.36 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
struct sala{int nrLocuri;int durata;};
sala s[10];Exemplu scris de Zece, nu singurul răspuns bun.
Subiectul al III-lea 30 p
Textul 9

III.110 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
int depozit(int x,int y,int z){
int a=x,b=y;while(b){int r=a%b;a=b;b=r;}
int m=x/a*y;
a=m;b=z;while(b){int r=a%b;a=b;b=r;}
return m/a*z;
}Exemplu scris de Zece, nu singurul răspuns bun.
Textul 10

III.210 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
#include <cstring>
#include <limits>
using namespace std;
int main(){int cod[3];for(int i=0;i<3;i++)cin>>cod[i];
cin.ignore(numeric_limits<streamsize>::max(),'\n');char s[101];cin.getline(s,101);
int k=0;for(int i=0;s[i];i++)if(s[i]!=' '){s[k]=char('A'+(s[i]-'A'+cod[k%3])%26);k++;}
s[k]='\0';cout<<s;return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
Textul 11

III.3.a2 p
Descrie algoritmul și justifică eficiența lui.
Verifică-te pe barem
Un exemplu de răspuns
Citesc x și y, apoi parcurg valorile în ordine. Păstrez precedenta și număr numai valorile diferite de ea, pare și cuprinse între x și y. Dublurile sunt consecutive. Timp O(m), memorie O(1); nu stochez șirul.
Exemplu scris de Zece, nu singurul răspuns bun.
III.3.b8 p
Scrie programul C/C++ pentru problema din fragment.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
#include <fstream>
using namespace std;
int main(){ifstream f("bac.txt");int x,y,v,precedent=-1,nr=0;f>>x>>y;
while(f>>v){if(v!=precedent && v%2==0 && x<=v && v<=y)nr++;precedent=v;}
cout<<nr;return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
Vrei să-ți scriem când apare ceva nou pentru Bacalaureat?
Îți scriem când punem subiecte oficiale noi explicate, în ziua examenului cu grila și rezultatele și, rar, când avem nevoie de ajutorul tău. Cel mult 2 emailuri pe lună, plus zilele de examen. Doar despre Bacalaureat.
Gata! Ți-am trimis un email de confirmare. Dacă nu-l vezi, uită-te și în Promoții sau Spam.