Documente Academic
Documente Profesional
Documente Cultură
INFORMATICĂ
Auxiliar 1 - Rezolvări propuse pentru
Simulările de bacalaureat la informatică C++,
variantele 1 – 10
ISBN 978-973-0-32126-5
Baia Mare
2020
PINTESCU Alina, KALMAR Violeta-Mihaela
COLEGIUL NAȚIONAL ”GHEORGHE ȘINCAI” BAIA MARE
INFORMATICĂ
Auxiliar 1 - Rezolvări propuse pentru
Simulările de bacalaureat la informatică C++,
variantele 1 – 10
Baia Mare
2020
Cuprins
1
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Răspuns:
a
Răspuns:
c
f(102030)=20+f(10203) =20+20+f(1020)=40+20+f(102)=60+20+f(10)=80+2020=2100
Răspuns:
d
1 3 1 3 1 3 1
0 0 1 1 1 2 2 3 1 3 0
1 1 1 1 1 1 1 1 1 2 2 2
1 2 3 4 5 6 7 8 9 10 11 12
Răspuns:
b
Răspuns:
c
Pentru graf complet cu n=20 noduri ar trebui să avem m=n(n-1)/2 muchii, respectiv 20x19/2 = 190 muchii
Deci 190 – 100 muchii existente = 90 muchii necesare (c)
1
SUBIECTUL al II-lea (40 de puncte)
Răspuns corect:
8viCtORIe
2
SUBIECTUL al III-lea (30 de puncte)
void putere(int n, int &d, int &p)
{ int pm,dm;
pm=p=0; dm=d=2;
while(n>1)
{ p=0;
while(n%d==0)
{ n/=d; p++; }
if(p>=pm)
{ pm=p;
dm=d; }
d++;
}
d=dm;
p=pm;
}
#include <iostream>
using namespace std;
int i,j,n,k,a[21][21],m;
int main()
{ cin>>n>>k;
for(i=1; i<=n; i++)
{ m=i;
for(j=1; j<=n*k; j++)
{ a[i][j]=m;
if(j%k==0) m++;
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0; }
a b
#include <iostream>
#include <fstream> Din relația de recurență fn=3fn-1 – fn-2 putem deduce următoarea
using namespace std; relație: fn-2=3fn-1 – fn. Vom genera pe rând termenii șirului, în
ofstream fout("bac.txt"); ordine descrescătoare (conform regulei obținute) și vom afișa
int x,y,z; numerele obținute în fișier până după afișarea valorii 1.
int main()
{ cin>>y>>x; Rezolvarea propusă este eficientă dpdv al memoriei deoarece am
fout<<x<<' '; folosit un număr redus de variabile (trei variabile simple) și este
while(x!=1 && y!=1) eficientă dpdv al timpului de executare deoarece algoritmul este
{ z=3*y-x; x=y; y=z; de complexitate logaritmică [ O(log y) unde y = nr dat] – adică
fout<<x<<' '; } afișările cerute se vor face împărțind succesiv numărul dat.
fout<<1<<' '<<1;
fout.close(); return 0; }
3
2
Simulare
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
1. Indicați o expresie care are valoarea 1 dacă şi numai dacă numărul memorat în variabila
întreagă x aparţine intervalului închis [-20,20].
a. !(x<-20) || (x>20)
b. x>-20 || x<20
c. !(x+20<0 && x-20>0)
d. x+20>=0 && x-20<=0
Răspuns: d
Răspuns: b
4
Răspuns: b
Răspuns: a
5
SUBIECTUL al II-lea (40 de puncte)
Rezolvare posibilă:
6
SUBIECTUL al III-lea (30 de puncte)
Metoda I Metoda II
a b
Am citit pe rând numerele din fișier unul câte unul, și
pe măsură ce le-am citit am testat dacă numărul citit
are ultimele 2 cifre conform cerinței (=20), și, dacă
da, am comparat numărul cu 3 valori posibile
maximale în ordinea max1<max2<max3, unde x
intră în poziția aferentă valorii.
7
3
Simulare
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Răspuns: d
Răspuns: c
Răspuns: a
8
Răspuns: b
9
M1 M2
struct cerc struct coord
{float raza; {float x,y;}
struct [coordonate] struct cerc
{ float x; {float raza;
float y;} centru; [struct] coord centru;
}fig; }fig;
Rezolvare propusă:
10
a b
Am citit pe rând valorile în variabila x și am reținut
prima și ultima poziție atât a unui element negativ cât și
a unui element pozitiv. La final am analizat diferența
maximă convenabilă conform cerinței.
11
4
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Simulare
Răspuns: a
Răspuns: b
Răspuns: d
Răspuns: c
Răspuns: b
12
SUBIECTUL al II-lea (40 de puncte)
Răspuns: opusqrdzdce
13
SUBIECTUL al III-lea (30 de puncte)
void generatoare(int n)
{ int a,b,ok=0;
for(a=1;a<=n/2;a++)
for(b=1;b<=n/2;b++)
{
if(a*b+a/b==n &&
a%2==0)
{cout<<a<<'-'<<b<<' ';
ok=1;}
}
if(ok==0)
cout<<"nu exista";
}
a b
Am citit prima variabilă în ante și am inițializat un contor
#include <iostream>
k=1, iar apoi am citit una câte una, restul valorilor în
#include <fstream> variabila nr. Am verificat dacă valoarea citită este egală
using namespace std; cu cea anterioară, dacă da, am incrementat k, dacă nu, am
ifstream fin ("bac.in");
int main() verificat dacă valoarea lui k =2 atunci am afișat nr în
{ int z,a,b,c,ok=0; cauză și am menționat schimbând valoarea lui ok, apoi am
fin>>z>>a>>b;
while(fin>>c)
resetat contorul k=1. Înainte de a citi numerele din fișier
{ am reținut tot timpul în ante valoarea anterioară citită. La
if(a==b&&b!=c&&z!=a) final am mai verificat aceleași condiții și pentru ultima
{ cout<<b<<' ';
ok=1; } valoare. Dacă variabila ok a rămas nemodificată am afișat
z=a; mesajul ”nu exista” deoarece nu s-a găsit nici o valoare
a=b;
b=c;
conform cerinței.
}
if(a==b&&z!=a) Rezolvarea propusă este eficientă dpdv al memoriei
{ cout<<b<<' ';
ok=1; deoarece am folosit un număr minimal de valori posibile
} (4 variabile) și este eficientă dpdv al timpului de
if(ok==0)
cout<<"nu exista";
executare deoarece algoritmul este liniar de complexitate
} liniară [O(n) unde n=nr elem] – adică la o singură
parcurgere a valorilor se oferă soluția dorită. Am folosit
faptul că numerele erau date în ordine descrescătoare.
14
5
Simulare
REZOLVARE PROPUSĂ DE
PROF. VIOLETA KALMAR
Răspuns: a
15
SUBIECTUL al II-lea (40 de puncte)
Răspuns
for (i=0;i<6; i++)
for (j=0; j<6; j++)
if (j<3)
if (i>j && i+j<5)
a[i][j]='*';
else
a[i][j]='(' ;
else
if(i<j && i+j>5)
a[i][j]='*' ;
else
a[i][j]=')' ;
16
SUBIECTUL al III-lea (30 de puncte)
int baza (int n)
{ int mx=0;
if (n==0)
return 2;
else
do
{if (n%10>mx)
mx=n%10;
n=n/10;
}while (n!=0);
return mx+1;
}
#include <iostream>
#include <cstring>
using namespace std;
int main()
{int n,i,k=0;
char s[101],*p;
cin.get(s,101);
p=strtok(s," "); //despărțitor
while(p)
{if (p[0]>='0'&& p[0]<='9')
if (strchr(p,',')==NULL)
k++;
p=strtok(NULL," "); //șterg
cuv
}
cout<<k;
return 0;}
17
Varianta 1 Varianta 2
#include <iostream>
#include <iostream>
#include <fstream>
#include <fstream>
using namespace std;
using namespace std;
ifstream f("bac.txt");
ifstream f("bac.txt");
int main()
int main()
{
{ int crt,smax=-1001,sc=0;
int crt,smax=-1001,sc=0,smn=0;
while (f>>crt)
while (f>>crt)
{ sc=sc+crt;
{ sc=sc+crt;
if (sc>smax)
if(sc-crt>smax)
smax=s;
smax=sc-crt;
if(sc<0)
if( smn>sc)
sc=0;
sc=smn;
}
}
cout<<smax;
cout<<smax;
f.close();
f.close();
}
}
Avem sc suma elementelor citite din fișier Se parcurge fișierul citind pe rând fiecare
până la elementul curent (crt). Deci, suma valoare (crt).
maximă a unei subsecvențe (smax) se obține Pe lăngă smax care memorează valoarea
scăzând din sc cea mai mică sumă maximă a unei secvențe, în sc se păstrează
parțială onbținută până atunci. suma unei secvențe curente pozitive.
Așadar, ideea este să parcurgem fișierul Practic se va impărți șirul în subsecvențe
menținând suma secvenței curente (sc), cât căt mai lungi de sume positive sau negative,
și suma parțială minimă din secvența curentă Cele positive sunt candidate la suma maximă,
(smn). cele negative nu.
La fiecare pas calculăm suma maximă a Ideea este că la fiecare pas să adunăm la sc
unei subsecvențe ce se termină pe poziția valoarea curentă citită din fișier, actualizăm
curentă și actualizăm maximul global dacă e dacă este cazul suma maximă şi, dacă sc a
cazul. devenit negativă, atunci o reiniţializăm cu 0.
Eficiența rezolvării constă în faptul că nu se Eficiența rezolvării constă în faptul că nu se
utilizează tablouri, și printr-o singură utilizează tablouri, și printr-o singură
parcurgere a fișierului se determină suma parcurgere a fișierului se determină suma
maximă, complexitatea fiind în mod maximă, complexitatea fiind în mod
evident O(n) unde n=nr de nre citite din evident O(n) unde n=nr de nre citite din fisi.
fisier.
18
6
REZOLVARE PROPUSĂ DE Simulare
PROF. VIOLETA KALMAR
Explicație:
Ultima soluție este varianta d. Penultima
este c.
3. a
Explicație:
Pentru ca segmentul AB să intersecteze axa
Oy produsul abciselor celor două puncte
trebuie să fie <=0. Accesul la un câmp al
structurii se face variabilă.câmp
4. d
5. b
Explicație:
Graf tare conex=există drumuri între
oricare două noduri x și y, atât de la x la y
sau cât și de la y la x.
1 -> 2 si 4 -> 2
sau
1 -> 2 si 4 -> 3
19
SUBIECTUL al II-lea
a. 4
b. 19 20
Explicație: variabila nr se mărește doar pentru un număr impar din intervalul [1..n] (doar atunci y>0) în intervalul
1..19 sunt 10 numere impare, dar și în intervalul 1..20
c. d.
#include <iostream> Citeste n (numar natural
using namespace std; nenul)
int main() y0
{ int n,i=1,j,r,x,y,nr=0; pentru i1,n executa
while (i<=n) x 0
{ x=0; y=1; j=1; y 1
While (j<i) j 1
{r=2*x-y; cat timp j<i executa
x=y; r 2*x-y
y=r;
x y
j=j+1; }
y r
i=i+1;
if (y>0) nr++; j j+1
} sf cat timp
cout<<nr; daca y>0 atunci
return 0;} nr nr+1
sf pentru
scrie nr
x1=6 x2=10
for (i=0; i<=3; i++) for (i=0; i<=3; i++) for (i=0; i<=3; i++)
for (j=0; j<=4; j++) for (j=0; j<=4; j++) for (j=0; j<=4; j++)
a[i][j[=5*(4-i-1) +j+1; if(i==0 && j==0) a[i][j]=16+j-5*i;
a[i][j]=16;
else
if(j>0)
a[i][j]=a[i][j]+1;
else
a[i][j]=a[i-1][j]-5;
20
SUBIECTUL al III-lea
21
a b
#include <iostream> Am generat toate numerele de 7 cifre stabilind toate
#include <fstream> valorile posibile pentru prima cifra, cifrele din mijloc
using namespace std; și penultima cifră, celelalte calculându-le în funcție
ofstream f (”bac.out”); de valoarea acestora. M-am asigurat că pentru fiecare
int main() număr generat valorile calculate să fie cifre (<9 și
valori întregi).
{int a, b, c, d, x, i, p1, p2, k=0; Am tipărit apoi fiecare număr generat cifră cu cifră.
cin>>p1>>p2;
for (a=9; a>=1; a--) Eficiența rezolvării dpdv al timpului de execuție
{ b=p1/a; constă în faptul ca nu am parcurs domeniul
if (b<9 && a*b==p1) numerelor de 7 cifre (1000000-9999999) pentru a
{ for (c=9; c>=1; c--) verifica dacă au proprietatea cerută, ci le-am generat
{d=p2/c; ținând cont de proprietățile cerute, rezultând un
if (d<=9 && c*d==p2) algoritm de complexitate constanta O(1).
for (x=9; x>=0;x--) Eficieța rezolvării dpdv al memoriei constă în faptul
ca am utilizat doar câteva variabile simple (fără
f<<a<<b<<x<<x<<x<<c<<d<<endl; tablouri sau alte tipuri de date structurate)
} //număr de forma abxxxcd
}
}
f.close();
return 0;
}
22
7
Simulare
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Răspuns: d
Răspuns: b
Răspuns: c
Nodurile 1, 3 si 4
Răspuns: c
23
SUBIECTUL al II-lea (40 de puncte)
struct biblio
{int numar;
struct [datecarti]
{char titlu[21];
char autor[21];
}carte[100];
}c;
Răspuns corect:
ou
rosu
24
SUBIECTUL al III-lea (30 de puncte)
int putere(int n, int p)
{ int k=0;
If(p<2) return -1;
for(int
d=2;d<=p/2;d++)
if(p%d==0)
return -1;
while(n%p==0)
{ k++;
n=n/p; }
return k; }
a b
Avem s suma elementelor citite din fișier până la
elementul curent (nr). Deci, suma minimă a unei
subsecvențe (smin) se obține adunând la s cea mai
mică sumă parțială obținută până atunci.
Așadar, ideea este să parcurgem fișierul
menținând suma secvenței curente (s), cât și suma
parțială minimă din secvența curentă (smin).
La fiecare pas calculăm suma minimă a unei
subsecvențe ce se termină pe poziția curentă și
actualizăm minimul global dacă e cazul.
Rezolvarea propusă este eficientă dpdv al
memoriei deoarece am folosit un număr minimal
de valori posibile (3 variabile) și este eficientă
dpdv al timpului de executare deoarece
algoritmul este liniar de complexitate liniară [O(n)
unde n=nr elem] – adică la o singură parcurgere a
valorilor se oferă soluția dorită. Am încercat ca
printr-o singură parcurgere a fișierului să se
determine suma cerută.
25
8
Simulare
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Răspuns: b
Răspuns: a
Răspuns: c
Răspuns: d
26
Răspuns: b
27
*Lipsește 5: 3, 4, 6
int prim(int x)
{ int kd=0;
for(int d=2;d<x;d++)
if(x%d==0)
kd++;
if(kd==0&&x>1)
return 1;
else return 0;
}
int sum(int n)
{ int s=0,i;
for(i=2;i<=n;i++)
if(n%i==0&&prim(i))
s=s+i;
return s;
}
28
a b
Am citit pe rând valorile în variabila x și am
#include <iostream>
reținut într-un vector de frecvență vuc de
#include <fstream>
câte ori apare un număr citit cu ultima cifră,
using namespace std;
repectiv marcăm de fiecare dată poziția
ifstream fin("bac.in");
acestuia în vectorul paralel vpoz. Pe parcurs
int vuc[10],vpoz[10],i,mx,x,u;
aflăm și numărul maxim convenabil conform
int main()
cerinței. La final parcurgem vectorul de
{while(fin>>x)
frecvență existent pentru ultima cifră a a nre-
{u= x%10;
lor citite și afișăm pozițiile pe care se află
vuc[u]++;
maximul determinat la parcurgere.
i++;
vpoz[u]=i;
Rezolvarea propusă este eficientă dpdv al
}
memoriei deoarece am folosit un număr minimal
for(i=0;i<10;i++)
de valori posibile (3 variabile simple și doi
if(vuc[i]>mx)
vectori de frecvență de câte 10 valori posibile) și
mx=vuc[i];
este eficientă dpdv al timpului de executare
for(i=0;i<10;i++)
deoarece algoritmul este liniar de complexitate
if(vuc[i]==mx)
liniară [ O(n) unde n=nr de nr citite] – adică la o
cout << vpoz[i]<<' ';
singură parcurgere a valorilor se oferă soluția
return 0;}
dorită.
29
9
REZOLVARE PROPUSĂ DE
Simulare
PROF. VIOLETA KALMAR
2. b
Explicație:
Elementele diagonalei secundare
a[0][5]=(0%2)*5+(5%2)*0 = 0
sunt
a[1][4]=(1%2)*4+(4%2)*1 = 4 a[i][5-i]=i%2*(5-i)+(5-i)%2+i,
a[2][3]=(2%2)*3+(3%2)*2 = 2 pentru i=0..5 adică 0, 4, 2, 2, 4, 0
a[3][2]=(3%2)*2+(2%2)*3 = 2
a[4][1]=(4%2)*1+(1%2)*4 = 4
a[5][0]=(5%2)*0+(0%2)*5 = 0
3. a
Explicație:
4. c
Nodul 5 este tată pentru 2, 7, 8
(apare în vectorul de tați pe
pozițiile 2, 7, 8), adică este tată
pentru 3 noduri
5. b
Explicație: arcele (6,2), (6,5)
30
SUBIECTUL al II-lea
a. 1 1 1 2 2 2 3 3
Explicație: Se afișează 8/3=2 grupe de cate 3 valori ale lui t (prima grupă cu 3 valori 1, a doua grupă cu 3 valori 2). In final, după ce s-a
încheiat primul pentru se afișează 8%3=2 valori ale lui t=3
b. 46 50
11111 2222 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10 11
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Explicație: Cel mai mic n=9*5+1 (pentru această valoare a lui n, ultima valoare afișată ar fi primul 10 din grupa de valori egale cu 10) iar
cel mai mare este n=10*5. ((pentru această valoare a lui n, ultima valoare afișată ar fi ultimul 10 din grupa de valori egale cu 10)
c. d.
#include <iostream> citește n,k
using namespace std; (numere naturale nenule)
int main() t1
{ int n, k, t=1; ┌pentru i1,[n/k] execută
c>>n>>k; │┌pentru j1,k execută
for(i=1; i<=n/k; i++) ││ scrie t,' '
{ for(j=1; j<=k; j++) │└■
│ tt+1
cout<<t<<’ ’;
└■
t++;
} in%k
for(i=n%k; i>=1; i--) ┌cât timp i>=1 execută
cout<<t<<’ ’; │ scrie t,' '
return 0;} │ ii-1
└■
f(0) = 0
f(2020) = 0+f(101) = 1 + f(5)
= 1 + 5 + f(0) = 6
3
4, 7
Adică sunt 3 componente conexe,
varfurile din componenta cu cele
mai puține noduri sunt 4 și 7
31
SUBIECTUL al III-lea
#include <iostream>
#include <cstring>
using namespace std;
int main()
char cuv[20][21]; int n,i,k=0;
cin>>n; cin.get();
for(i=1; i<=n; i++)
cin>>cuv[i]; // cin.getline(cuv[i],20);
for(i=1; i<=n-1; i++)
if(strcmp(strstr(cuv[i],cuv[n]), cuv[i])==0)
{ cout<<cuv[i]<<" ";
k++;
}
if (k==0) cout<<"nu exista";
return 0;}
32
a b
#include <iostream>
#include <fstream> În rezolvarea propusă am citit pe rând din
using namespace std; fișier numarul k iar apoi celelalte numere
ifstream f("bac.txt"); (x).
int main() Pentru fiecare numar x citit din fișier am
{int nrsecv,x,k,l=0, lmax=0; verificat divizibilitatea cu k; în caz
f>>k; afirmativ am incrementat lungimea
while(f>>x) secvenței curente ( l ) de numere
{if(x%k==0) divizibile cu k, iar în caz contrar am
l++; actualizat corespunzător lungimea
else maximă (lmax) a unei secvențe de
{if (l>lmax) numere consecutive citite din fișier
{ divizibile cu k, precum și numărul de
lmax=l; secvențe (nrsecv) cu această lungime
nrsecv=1; maximă.
}
else Eficiența rezolvării al timpului de
if(l==lmax) execuție constă în faptul că printr-o
nrsecv++; singură parcurgere a fisierului am
l=0; rezolvat cerința problemei.
}
} Eficieța rezolvării dpdv al memoriei
if (l>lmax) constă în faptul ca am utilizat doar câteva
{ variabile simple (fără tablouri sau alte
lmax=l; tipuri de date structurate)
nrsecv=1;
}
else
if(l==lmax)
nrsecv++;
cout<<lmax<<’ ’<<nrsecv;
f.close();
return 0;
}
33
10
Simulare
REZOLVARE PROPUSĂ DE
PROF. ALINA PINTESCU
Răspuns: d
Obs: x=8 nu merge d. (daca si numai daca)
Răspuns: b
Răspuns: c
Răspuns: a
Răspuns: c
34
SUBIECTUL al II-lea (40 de puncte)
a) Răspuns corect: 60
b) 20 21 Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinței.
S=10+12+14+16+18+20 =90 pt 20 si 21
a) c) d)
citește x,y
(numere naturale nenule)
┌dacă x>y atunci
| x→y
└■
ix; jy; s0
ss+(i%2)*j+(j%2)*i
ii+1; jj-1
┌cât timp i≤j execută
| ss+(i%2)*j+(j%2)*i
│ ii+1; jj-1
└■
scrie s
struct spectacol
{ int cod, nrActori;
int varsta[10];
}s[20];
M1
for(i=0; i<4; i++)
for(j=0; j<5; j++)
a[i][j]=i*5+5-j;
// a[i][j]=(i+1)*5-j;
M2
for(j=4; j>=0; j--)
{a[0][j]=5-j;
for(i=1; i<=3; i++)
a[i][j]=a[i-
1][j]+5;
}
35
SUBIECTUL al III-lea (30 de puncte)
Metoda 1 Metoda 2
#include <iostream>
#include <cstring>
using namespace std;
int i, j, ok, aux;
char s[1024];
int main()
{cin.getline(s,100);
while (s[i]!='\0') {
if (s[i]==' ') {
j=i+1;
while (s[j]>='a'&&s[j]<='z') j++;
if (s[i-1]==s[j-1]) {
ok=1;
aux = strlen(s);
for (j = aux; j>=i; j--)
s[j+7]=s[j];
strcpy(s+i+1, "succes"); s[i+7]=' ';
i+=8;
}
}
i++;
}
if (!ok) cout<<"nu exista";
else cout<<s;
return 0;
}
36
a b
#include <iostream>
#include <fstream> Am citit pe rând numerele din fișier. Am salvat în b
using namespace std; numărul precedent și am citit în variabila a nr curent.
ifstream fin("bac.txt"); Am verificat dacă rația curentă este egală cu rația
int r,rmx,k,lmx,n,a,b; anterioară, iar în caz afirmativ lungimea unui posibil
int main() șir k crește, în caz contrar rația se
{while(fin>>n) modifică/actualizează și lungimea noului șir devine 0.
{b=a; a=n; Dacă lungimea șirului l este mai mare decât o lungime
if(a-b==r) k++; maximă găsită (lmx), atunci actualizăm valoarea
else maximă lmx=k și rația maximă rmx=r.
{r=a-b; k=0;} Dacă lmx=k atunci vom compara rațiile și o vom
if(k>lmx) reține pe cea mai mare.
{lmx=k; rmx=r;} Dacă lungimea șirului l este diferită de 0 vom afișa
if(k==lmx) rmx, în caz contrar se va afișa mesajul ”nu există”
if(r>rmx) rmx=r; deoarece nu s-a găsit un șir conform cerinței.
}
if(k!=0) cout<<rmx; Rezolvarea propusă este eficientă dpdv al memoriei
else cout << "nu exista"; deoarece am folosit un număr minimal de valori
return 0;} posibile (7 variabile simple) și este eficientă dpdv al
timpului de executare deoarece algoritmul este liniar
de complexitate liniară [ O(n) unde n=nr de nr citite] –
adică la o singură parcurgere a valorilor se oferă
soluția dorită.
37
RESURSE WEB
https://rocnee.eu/modelesubiecte/
https://www.pbinfo.ro/articole/5546/informatica-in-liceu
https://alinapintescu.wordpress.com/c/
38