Documente Academic
Documente Profesional
Documente Cultură
Clasa a 9-a G
1. #633
Cerința
Se dă un șir cu n elemente, numere naturale. Determinați diferența în valoare absolută dintre numărul
de valori pare din șir și numărul de valori impare din șir.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele
șirului.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Exemplu
Intrare
15 245 28 33 11
Ieșire
#include <iostream>
int main()
int n,v[1001],a=0,p=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
Barbulescu Robert Cristian
Clasa a 9-a G
for(int i=1;i<=n;i++)
if(v[i]%2==0)
p++;
else
a++;
if(p<a)
swap(p,a);
cout<<p-a;
return 0;
2. #486
Se citește n, apoi încă n numere naturale, reprezentând elementele unui vector.
Cerinţa
Calculaţi valoarea minimă minim și valoarea maximă maxim a valorilor elementelor vectorului.
Date de intrare
Programul citește de la tastatură de numărul n, apoi încă n numere naturale, reprezentând
elementele vectorului.
Date de ieşire
Programul va afișa pe ecran cele două numere minim şi maxim, separate printr-un singur
spaţiu.
Restricţii şi precizări
0 < n < 1000
elementele vectorului vor fi mai mici decât 1000000
Barbulescu Robert Cristian
Clasa a 9-a G
Exemplu
Intrare
5
8 2 9 4 5
Ieșire
2 9
Explicație
Vectorul conține 5 elemente. Valoarea maxima este 9, iar valoarea minimă este 2.
#include <iostream>
int main()
{
int n,v[1001],m=999999999,M=-1;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]<m)
m=v[i];
if(v[i]>M)
M=v[i];
}
cout<<m<<' '<<M;
return 0;
}
3. #553
Barbulescu Robert Cristian
Clasa a 9-a G
Cerinţa
Calculaţi indicele imin și indicele imax ai elementului cu valoarea minimă, respectiv cu
valoarea maximă, din vectorul dat.
Date de intrare
Programul citește de numărul n, apoi încă n numere naturale, reprezentând elementele
vectorului.
Date de ieşire
Programul va afișa pe ecran cele două numere imin şi imax, separate printr-un singur
spaţiu.
Restricţii şi precizări
1 ≤ n ≤ 1000
elementele vectorului vor fi mai mici decât 1.000.000 și vor fi indexate de
la 1 la n
Exemplu
Intrare
5
8 7 9 2 5
Ieșire
4 3
Explicație
Vectorul conține 5 elemente. Valoarea maxima este 9, cu indicele 3, iar valoarea minimă
este 2, cu indicele 4.
#include <iostream>
Barbulescu Robert Cristian
Clasa a 9-a G
int main()
{
int n,v[1001],m=999999999,M=-1,im,iM;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]<m)
{
m=v[i];
im=i;
}
if(v[i]>M)
{
M=v[i];
iM=i;
}
}
cout<<im<<' '<<iM;
return 0;
}
4. #2858
Se consideră un șir a , a , …, a de numere naturale.
1 2 n
Cerințe
Să se afișeze elementele șirului de la dreapta la stânga.
Să se calculeze suma valorilor pare din șir.
Să se determine suma valorilor aflate pe poziții pare în șir.
Să se determine numărul numerelor din șir care sunt divizibile cu 10.
Să se determine suma numerelor divizibile cu 3 și aflate pe poziții impare.
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numărul n, iar apoi șirul de n numere naturale, separate prin
spații.
Date de ieșire
Programul va afișa pe ecran pe prima linie elementele șirului de la dreapta la stânga. Pe linia
a doua se va afișa un singur număr reprezentând suma valorilor pare. Pe linia a treia se va
afișa un singur număr reprezentând suma valorilor aflate pe poziții pare în șir. Pe linia a patra
se va afișa un singur număr reprezentând numărul numerelor din șir care sunt divizibile
cu 10. Pe linia a cincea se va afișa un singur număr reprezentând suma numerelor divizibile
cu 3 și aflate pe poziții impare.
Restricții și precizări
1 ≤ n ≤ 100
0 ≤ ai ≤ 100, pentru orice i=1..n.
Exemplu
Intrare
10
1 2 3 4 5 6 7 8 9 10
Ieșire
10 9 8 7 6 5 4 3 2 1
30
30
1
12
#include <iostream>
int main()
int n,v[101],p=0,ip=0,c=0,t=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=n;i>0;i--)
cout<<v[i]<<' ';
if(v[i]%2==0)
p+=v[i];
if(i%2==0)
ip+=v[i];
if(v[i]%10==0)
c++;
t+=v[i];
cout<<endl<<p<<endl<<ip<<endl<<c<<endl<<t;
return 0;
5. #496
Barbulescu Robert Cristian
Clasa a 9-a G
Cerinţa
Se dă un vector cu n numere naturale. Să se determine câte dintre elementele vectorului sunt
prime cu ultimul element.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii,
reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran numărul C, reprezentând valoarea cerută.
Restricţii şi precizări
1 ≤ n ≤ 200
elementele vectorului vor fi cuprinse între 0 și 1000
Exemplu
Intrare
6
50 64 15 28 35 75
Ieșire
Explicație
Elementele din vector prime cu 75 sunt 64 și 28.
#include <iostream>
int main()
Barbulescu Robert Cristian
Clasa a 9-a G
{
int n,v[201],cv,c=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
cv=v[n];
for(int i=1;i<n;i++)
{
while(v[i]!=0 && v[n]!=0)
if(v[i]>v[n]) v[i]=v[i]%v[n];
else
v[n]=v[n]%v[i];
if(v[i]+v[n]==1)
c++;
v[n]=cv;
}
cout<<c;
return 0;
}
6. #1452
Se dă un șir cu n elemente întregi și un număr p.
Cerinţa
Să se șteargă din șirul X elementul aflat pe poziția p.
Date de intrare
Programul va citi de la tastatură două valori n p, cu semnificația precizată, apoi n numere
întregi reprezentând elementele șirului.
Date de ieşire
Barbulescu Robert Cristian
Clasa a 9-a G
Restricţii şi precizări
1 ≤ p ≤ n ≤ 1500
valoarea X și elementele șirului vor fi cuprinse între -1.000.000 și 1.000.000
elementele șirului vor avea indici între 1 și n.
Exemplu
Date de intrare
5 2
7 3 9 1 6
Date de ieșire
7 9 1 6
#include <iostream>
cout<<v[i]<<' ';
return 0;
}
7. #163
Cerinţa
Se dă un vector cu n elemente numere naturale. Să se șteargă din vector toate elementele care
sunt numere prime.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii,
reprezentând elementele vectorul.
Date de ieşire
Programul afișează pe ecran, separate prin spații, elementele vectorului obținut prin ștergerea
elementelor prime.
Restricţii şi precizări
0 < n ≤ 1000
elementele vectorului vor fi mai mici decât 230
Exemplu
Intrare
5
7 8 9 17 1
Ieșire
8 9 1
#include <iostream>
int main()
{
int n,v[1001];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
{
bool ok=0;
for(int d=2;d*d<=v[i];d++)
if(v[i]%d==0)
ok=1;
if(ok==1 || v[i]<2)
{
cout<<v[i]<<' ';
}
}
return 0;
}
8. #1453
Cerinţa
Se dă un vector cu n elemente numere naturale. Să se șteargă din vector toate elementele
pare.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii,
reprezentând elementele vectorul.
Date de ieşire
Programul afișează pe ecran, separate prin spații, elementele vectorului obținut prin ștergerea
elementelor pare.
Barbulescu Robert Cristian
Clasa a 9-a G
Restricţii şi precizări
0 < n ≤ 1000
elementele vectorului vor fi mai mici decât 230
Exemplu
Intrare
7
7 9 4 2 1 6 5
Ieșire
7 9 1 5
#include <iostream>
return 0;
}
9. #2734
Barbulescu Robert Cristian
Clasa a 9-a G
Cerința
Se citește un șir cu n elemente, numere întregi. Să se șteargă elementele care se repetă,
păstrându-se doar primul de la stânga la dreapta.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spații.
Date de ieșire
Programul va afișa pe ecran elementele șirului prelucrat cu spații intre ele.
Restricții și precizări
1 ≤ n ≤ 1000
valoarea absolută a elementelor șirului va fi mai mică decât 1.000.000.000
Exemplu
Intrare
6
1 2 3 2 4 5
Ieșire
1 2 3 4 5
#include <iostream>
for(int i=1;i<=n;i++)
{
bool ok=0;
for(int j=i-1;j!=0;j--)
if(v[i]==v[j])
ok=1;
if(ok==0)
cout<<v[i]<<' ';
}
return 0;
}
10. #159
Se dă un șir cu n elemente naturale.
Cerinţa
Să se insereze în șir după fiecare element par dublul său.
Date de intrare
Programul va citi de la tastatură numărul n, apoi n numere naturale reprezentând elementele
șirului.
Date de ieşire
Programul va afișa pe ecran elementele șirului obținut după inserare, separate printr-un
spațiu.
Restricţii şi precizări
1 ≤ n ≤ 25
elementele șirului vor fi cuprinse între 0 și 1.000.000
Exemplu
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
5
7 3 4 1 6
Date de ieșire
7 3 4 8 1 6 12
#include <iostream>
int main()
{
int n,v[26];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
{
cout<<v[i]<<' ';
if(v[i]%2==0)
cout<<v[i]*2<<' ';
}
return 0;
}
11. #160
Se dă un șir cu n elemente naturale.
Cerinţa
Să se insereze în șir înaintea fiecărui element pătrat perfect rădăcina sa pătrată.
Date de intrare
Barbulescu Robert Cristian
Clasa a 9-a G
Date de ieşire
Programul va afișa pe ecran elementele șirului obținut după inserare, separate prin câte un
spațiu.
Restricţii şi precizări
1 ≤ n ≤ 25
elementele șirului vor fi cuprinse între 0 și 1.000.000
Exemplu
Date de intrare
5
7 3 4 1 9
Date de ieșire
7 3 2 4 1 1 3 9
#include <iostream>
int main()
{
int n,v[26];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
{
int d=0;
Barbulescu Robert Cristian
Clasa a 9-a G
while(d*d<v[i])
{
d++;
}
if(d*d==v[i])
cout<<d<<' ';
cout<<v[i]<<' ';
}
return 0;
}
12. #1365
Cerința
Se dau n numere întregi. Să se insereze între oricare două numere de aceeași paritate
media lor aritmetică.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin
spații.
Date de ieșire
Programul va afișa pe ecran elementele noului șir de numere obținut după inserarea
elementelor, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 100
-1.000.000.000 ≤ elementele șirului ≤ 1.000.000.000
Exemplu
Intrare
Barbulescu Robert Cristian
Clasa a 9-a G
5
1 21 3 4 8
Ieșire
1 11 21 12 3 4 6 8
Explicație
Între 1 și 21 se inserează numărul (1+21)/2=11. Între 21 și 3 se inserează
numărul (21+3)/2=12. Între 3 și 4 nu se inserează nimic, pentru că au paritate diferită.
Între 4 și 8 se inserează numărul 6.
#include <iostream>
int main()
int n,v[101];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<n;i++)
cout<<v[i]<<' ';
if((v[i]+v[i+1])%2==0)
cout<<(v[i]+v[i+1])/2<<' ';
cout<<v[n];
return 0;
Barbulescu Robert Cristian
Clasa a 9-a G
13. #501
Cerinţa
Se dă un vector cu n elemente numere naturale. Să se verifice dacă toate elementele
vectorului sunt egale.
Date de intrare
Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele
vectorului.
Date de ieşire
Programul afișează pe ecran mesajul DA, dacă vectorul are toate elementele egale, sau NU, în
caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 500
fiecare element al vectorului va avea cel mult patru cifre
Exemplu
Date de intrare
7
6 6 6 6 4 6 6
Date de ieșire
NU
#include <iostream>
Barbulescu Robert Cristian
Clasa a 9-a G
int main()
int n,v[501];
bool ok=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<n;i++)
if(v[i]!=v[i+1])
ok=1;
if(ok==0)
cout<<"DA";
else
cout<<"NU";
return 0;
}
14. #505
Cerința
Se dau doi vectori cu câte n elemente, numere naturale. Verificați dacă cei doi vectori conțin
exact aceleași elemente.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând
elementele primului vector, apoi încă n numere naturale, reprezentând elementele celui de-al
doilea vector.
Barbulescu Robert Cristian
Clasa a 9-a G
Date de ieșire
Programul va afișa pe ecran mesajul DA, dacă cei doi vectori conțin exact aceleași elemente,
respectiv NU, în caz contrar.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Exemplu
Intrare
5
6 8 7 7 4
8 4 6 7 7
Ieșire
DA
#include <iostream>
int main()
int n,v[1001],a[1001];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
Barbulescu Robert Cristian
Clasa a 9-a G
cin>>a[i];
bool ok1=0;
for(int i=1;i<=n;i++)
bool ok2=0;
for(int j=1;j<=n;j++)
ok2=1;
a[j]=-1;
if(ok2==0)
ok1=1;
if(ok1==0)
cout<<"DA";
else
cout<<"NU";
return 0;
}
15. #510
Cerința
Se dă un vector cu n elemente, numere naturale. Afișați în ordine crescătoare valorile prime
din acest vector.
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând
elementele vectorului.
Date de ieșire
Programul va afișa pe ecran valorile prime din vector, în ordine crescătoare, separate prin
exact un spațiu.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Exemplu
Intrare
7
13 1 10 15 3 7 11
Ieșire
3 7 11 13
#include <iostream>
int main()
{
int n,v[1001],a[1001],p=1;
cin>>n;
for(int i=1;i<=n;i++)
{
bool ok=0;
Barbulescu Robert Cristian
Clasa a 9-a G
cin>>v[i];
for(int d=2;d*d<=v[i];d++)
if(v[i]%d==0)
ok=1;
if(ok==0 && v[i]>1)
{
a[p]=v[i];
p++;
}
}
p--;
bool ord=0;
while(ord==0)
{
ord=1;
for(int i=1;i<p;i++)
if(a[i]>a[i+1])
{
ord=0;
swap(a[i],a[i+1]);
}
}
for(int i=1;i<=p;i++)
cout<<a[i]<<' ';
return 0;
}
16. #180
Cerinţa
Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare
maximă şi cel de valoare minimă.
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte,
separate prin spaţii.
Date de ieşire
Programul afișează pe ecran elementele şirului după ordonare.
Restricţii şi precizări
0 < n ≤ 1000
elementele şirului sunt numere naturale mai mici decât 1.000.000
Exemplu
Intrare
5
10 20 15 7 12
Ieșire
10 7 15 20 12
Explicație
S-au ordonat elementele aflate pe poziţiile 2, 3, 4.
#include <iostream>
int main()
int n,v[1001],m=999999999,M=-1,im,iM;
Barbulescu Robert Cristian
Clasa a 9-a G
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
if(v[i]>M)
M=v[i];
iM=i;
if(v[i]<m)
m=v[i];
im=i;
if(im>iM)
swap(im,iM);
bool ord=0;
while(ord==0)
ord=1;
for(int i=im;i<iM;i++)
if(v[i]>v[i+1])
swap(v[i],v[i+1]);
Barbulescu Robert Cristian
Clasa a 9-a G
ord=0;
for(int i=1;i<=n;i++)
cout<<v[i]<<' ';
return 0;
}
17. #185
Cerinţa
Se citește de la tastură un număr natural n, apoi n numere naturale. Să se afişeze cel mai mic
număr care poate fi scris folosind prima cifră a numerelor citite.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale, separate prin
spaţii.
Date de ieşire
Programul afișează pe ecran numărul MIN, cel mai mic număr care poate fi scris folosind
prima cifră a numerelor citite.
Restricţii şi precizări
0 < n < 1000
cele n numere citite vor fi nenule și mai mici decât 1.000.000.000
Exemplu
Intrare
5
Barbulescu Robert Cristian
Clasa a 9-a G
Ieșire
12359
#include <iostream>
int main()
int n,v[1001];
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(v[i];v[i]/10!=0;v[i]/=10)
{}
bool ok=0;
while(ok==0)
ok=1;
for(int i=1;i<n;i++)
if(v[i]>v[i+1])
swap(v[i],v[i+1]);
Barbulescu Robert Cristian
Clasa a 9-a G
ok=0;
for(int i=1;i<=n;i++)
cout<<v[i];
return 0;
}
18. #251
Cerinţa
Se dau două şiruri a şi b, cu n, respectiv m elemente, numere naturale, ordonate strict
crescător. Să se afişeze, în ordine strict crescătoare, valorile existente în ambele şiruri.
Date de intrare
Fişierul de intrare interclasare2.in conţine pe prima linie numărul n; urmează n numere
naturale, ordonate strict crescător, ce pot fi dispuse pe mai multe linii. Linia următoare
conţine numărul m şi urmează m numere naturale, ordonate strict crescător, ce pot fi dispuse
pe mai multe linii.
Date de ieşire
Fişierul de ieşire interclasare2.out va conţine, în ordine strict crescătoare, valorile
existente în ambele şiruri. Aceste valori vor fi afişate câte 10 pe o linie, separate prin spaţii.
Ultima linie poate conţine mai puţin de 10 de valori.
Restricţii şi precizări
1 ≤ n,m ≤ 100.000
valorile elementelor celor două şiruri vor fi mai mici decât 1.000.000
Barbulescu Robert Cristian
Clasa a 9-a G
Exemplu
interclasare2.in
7
1 3 4
7 20 24 60
9
3 5 7
8 9 10 12
20 24
interclasare2.out
3 7 20 24
#include <iostream>
#include <fstream>
ifstream fin("interclasare2.in");
ofstream fout("interclasare2.out");
int main()
{
int n,a[100001],b[100001],m,c[100001],q=1;
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
fin>>m;
for(int i=1;i<=m;i++)
fin>>b[i];
int i=1, j=1;
while(i<=n && j<=m)
if(a[i]==b[j])
Barbulescu Robert Cristian
Clasa a 9-a G
c[q++]=a[i],i++,j++;
else
if(a[i]<b[j])
i++;
else
j++;
for(int i=1;i<q;i++)
{
fout<<c[i]<<' ';
if(i%10==0)
fout<<endl;
}
return 0;
}
19. #525
Cerința
Se dau n numere naturale. Determinaţi cele mai mari două numere cu trei cifre care nu apar
printre numerele date.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numerele a b, a < b reprezentând cele două numere
determinate. Dacă nu se pot găsi două astfel de numere, se va afişa mesajul NU EXISTA.
Restricții și precizări
1 ≤ n ≤ 500.000
cele n numere citite vor fi mai mici decât 1.000.000.000
Barbulescu Robert Cristian
Clasa a 9-a G
Exemplu
Intrare
10
10 994 1010 999 1010 998 1005 994 996 995
Ieșire
993 997
#include <iostream>
int a[1000];
int main()
{
int n,x,q=0,p=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
if(x<1000)
a[x]=1;
}
for(int i=999;i>=100;i--)
{
if(q==0)
{
if(a[i]==0)
{
q=i;
i--;
}
Barbulescu Robert Cristian
Clasa a 9-a G
}
if(p==0)
if(a[i]==0)
p=i;
}
if(q!=0 && p!=0)
cout<<p<<' '<<q;
else
cout<<"NU EXISTA";
return 0;
}
20. #1306
Cerința
Fiind dat un şir cu n elemente numere naturale, să se calculeze suma cuburilor cifrelor
tuturor numerelor din şir.
Date de intrare
Programul citește de la tastatură numărul n şi cele n elemente ale şirului.
Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma cuburilor cifrelor tuturor
numerelor din şir .
Restricții și precizări
1 ≤ n ≤ 2.000.000
numerele din şir au cel mult 4 cifre
Exemplu
Intrare
Barbulescu Robert Cristian
Clasa a 9-a G
3
24 120 51
Ieșire
207
Explicație
Suma cuburilor cifrelor numerelor din şir este S=2 +4 +1 +2 +0 +5 +1 =207.
3 3 3 3 3 3 3
#include <iostream>
int main()
cin>>n;
for(int i=1;i<=n;i++)
cin>>x;
while(x!=0)
s=s+(x%10)*(x%10)*(x%10);
x/=10;
cout<<s;
return 0;
Barbulescu Robert Cristian
Clasa a 9-a G
21. #659
Cerința
Gigel a găsit o matrice cu n linii și m coloane și elemente numere naturale. El își propune
să determine, pentru fiecare linie, cea mai mică valoare care se poate obține adunând
elementele de pe linie, cu excepția unuia.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere
naturale, reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran n numere, separate prin câte un spațiu, reprezentând
valorile obținute pentru fiecare linie, de sus în jos.
Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
Exemplu
Intrare
3 4
5 5 10 5
3 9 1 9
4 10 1 2
Ieșire
Barbulescu Robert Cristian
Clasa a 9-a G
15 13 7
Explicație
Pentru prima linie nu se însumează elementul 10, pentru linia a doua nu se însumează
unul dintre elementele 9, iar pentru linia a treia nu se însumează elementul 10.
#include <iostream>
int main()
{
int n,m,V[101][101],M=-1;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>V[i][j];
for(int i=1;i<=n;i++)
{
int s=0;
M=-1;
for(int j=1;j<=m;j++)
{
if(V[i][j]>M)
M=V[i][j];
s=s+V[i][j];
}
s=s-M;
cout<<s<<' ';
}
return 0;
}
Barbulescu Robert Cristian
Clasa a 9-a G
22. #666
Cerința
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine
câte dintre elementele situate pe linii cu indici pari sunt prime.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere
naturale, reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea căutată.
Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m
Exemplu
Intrare
4 3
5 12 10
3 9 1
7 10 1
10 9 3
Ieșire
Explicație
Cele 2 valori prime determinate sunt cele îngroșate mai jos:
Barbulescu Robert Cristian
Clasa a 9-a G
5 12 10
3 9 1
7 10 1
10 9 3
Observăm că matricea conține și alte elemente prime, dar ele nu sunt situate pe linii cu
indici pari.
#include <iostream>
int main()
{
int n,m,v[101][101],c=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
if(i%2==0)
{
bool ok=0;
for(int d=2;d*d<=v[i][j];d++)
if(v[i][j]%d==0)
ok=1;
if(ok==0 && v[i][j]>1)
{
c++;
}
}
}
cout<<c;
return 0;
}
Barbulescu Robert Cristian
Clasa a 9-a G
23. #2807
Cerința
Scrieți un program care citește de la tastatură două numere naturale din
intervalul [2,50], n și m, și elementele unui tablou bidimensional cu n linii și m coloane,
numere naturale distincte din intervalul [0,10 ].
4
Programul interschimbă valoarea minimă din ultima coloană a tabloului cu valoarea minimă
din prima coloană a tabloului, apoi afișează pe ecran tabloul modificat, câte o linie a tabloului
pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi cele n • m elemente ale tabloului.
Date de ieșire
Programul va afișa pe ecran elementele tabloului modificat, conform cerinței.
Restricții și precizări
2 ≤ n,m ≤ 50
elementele tabloului aparțin intervalului [0,10 ]
4
Exemplu
Intrare
4 3
7 5 19
3 8 4
23 6 1
10 2 9
Ieșire
7 5 19
1 8 4
23 6 3
Barbulescu Robert Cristian
Clasa a 9-a G
10 2 9
#include <iostream>
int main()
{
int n,m,v[101][101],min1=9999999,min2=99999999,j1,j2;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
int i=1;
for(int j=1;j<=n;j++)
{
if(v[j][i]<min1)
{
min1=v[j][i];
j1=j;
}
}
for(int j=1;j<=n;j++)
{
if(v[j][m]<min2)
{
min2=v[j][m];
j2=j;
}
}
swap(v[j1][1],v[j2][m]);
i=1;
Barbulescu Robert Cristian
Clasa a 9-a G
for(i;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
return 0;
}
24. #776
Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se determine
câte linii ale matricei au toate elementele egale.
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale,
separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran numărul C, cu semnificația de mai sus.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1.000.000
Exemplu
Date de intrare
4 6
23 23 15 23 18 23
Barbulescu Robert Cristian
Clasa a 9-a G
17 17 17 17 17 17
17 18 13 18 12 15
34 34 34 34 34 34
Date de ieșire
Explicații
A doua și a patra linie au toate valorile egale.
#include <iostream>
int main()
{
int n,m,v[101][101],c=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<=n;i++)
{
bool ok=0;
for(int j=1;j<m;j++)
if(v[i][j]!=v[i][j+1])
ok=1;
if(ok==0)
c++;
}
cout<<c;
return 0;
Barbulescu Robert Cristian
Clasa a 9-a G
25. #777
Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se determine câte
coloane ale matricei au elementele distincte două câte două.
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran numărul C, cu semnificația de mai sus.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1.000.000
Exemplu
Date de intrare
4 7
15 27 40 41 32 42 12
48 35 40 54 17 46 33
37 52 40 19 11 46 23
49 27 40 29 25 44 12
Date de ieșire
3
Barbulescu Robert Cristian
Clasa a 9-a G
Explicații
Prima, a patra și a cincea coloană au toate elementele distincte două câte două.
#include <iostream>
int main()
{
int n,m,v[101][101],c=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int j=1;j<=m;j++)
{
bool ok=0;
for(int i=1;i<n;i++)
for(int p=i+1;p<=n;p++)
if(v[i][j]==v[p][j])
ok=1;
if(ok==0)
c++;
}
cout<<c;
return 0;
}
26. #2825
Barbulescu Robert Cristian
Clasa a 9-a G
Cerința
Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul [3,
100], în această ordine: n și m, apoi elementele unui tablou bidimensional cu n linii
și m coloane, iar la final un număr x.
Programul afișează pe ecran mesajul DA, dacă există cel puțin un element egal cu x aflat pe
conturul tabloului (format din prima linie, ultima linie, prima coloană și ultima coloană), sau
mesajul NU în caz contrar.
Date de intrare
Programul citește de la tastatură de la tastatură numere naturale n și m, apoi elementele unui
tablou bidimensional cu n linii și m coloane, iar la final un număr x.
Date de ieșire
Programul va afișa pe ecran mesajul DA sau mesajul NU, conform cerinței.
Restricții și precizări
toate valorile citite sunt numere naturale din intervalul [3, 100].
Exemplu
Intrare
4 5
12 5 12 11 4
3 20 10 20 12
4 5 30 12 6
8 13 7 12 14
12
Ieșire
DA
#include <iostream>
Barbulescu Robert Cristian
Clasa a 9-a G
int main()
{
int n,m,v[101][101],x;
bool ok=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
cin>>x;
for(int j=1;j<=m;j++)
{
int i=1;
if(v[i][j]==x)
ok=1;
}
for(int j=1;j<=m;j++)
{
int i=n;
if(v[i][j]==x)
ok=1;
}
for(int i=1;i<=n;i++)
{
int j=m;
if(v[i][j]==x)
ok=1;
}
for(int i=1;i<=n;i++)
{
int j=1;
if(v[i][j]==x)
Barbulescu Robert Cristian
Clasa a 9-a G
ok=1;
}
if(ok==1)
cout<<"DA";
else
cout<<"NU";
return 0;
}
27. #2800
Cerința
Scrieți un program care citește de la tastatură două numere naturale din
intervalul [3,50], n și m, și elementele unui tablou bidimensional cu n linii și m coloane,
numere naturale din intervalul [0,10 ]. 4
Programul modifică în memorie tabloul dat, atribuind valoarea elementului aflat pe ultima
linie și pe ultima coloană a tabloului fiecărui element aflat pe conturul acestuia (pe prima
linie, ultima linie, prima coloană, ultima coloană), apoi afișează pe ecran tabloul modificat,
câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin
câte un spațiu.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi cele n • m elemente ale tabloului.
Date de ieșire
Programul va afișa pe ecran elementele tabloului modificat, conform cerinței.
Restricții și precizări
3 ≤ n,m ≤ 50
elementele tabloului aparțin intervalului [0,10 ]
4
Exemplu
Intrare
Barbulescu Robert Cristian
Clasa a 9-a G
5 4
0 5 2 11
3 2 10 2
7 3 1 4
4 5 0 12
8 13 7 5
Ieșire
5 5 5 5
5 2 10 5
5 3 1 5
5 5 0 5
5 5 5 5
#include <iostream>
int main()
{
int n,m,v[101][101];
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int j=1;j<=m;j++)
{
int i=1;
v[i][j]=v[n][m];
}
for(int j=1;j<=m;j++)
{
int i=n;
v[i][j]=v[n][m];
Barbulescu Robert Cristian
Clasa a 9-a G
}
for(int i=1;i<=n;i++)
{
int j=m;
v[i][j]=v[n][m];
}
for(int i=1;i<=n;i++)
{
int j=1;
v[i][j]=v[n][m];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
return 0;
}
28. #804
Cerinţa
Se dă o matrice cu m linii şi n coloane şi elemente numere naturale cu cel mult 4 cifre fiecare.
Să se determine coloanele matricei care au toate elementele egale cu aceeași valoare.
Date de intrare
Programul citește de la tastatură numerele m şi n, iar apoi m*n numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran pentru fiecare coloană cu toate elementele egale, valoarea
comună. Valorile afișate vor fi separate prin câte un spațiu, iar dacă nu există coloane cu toate
elementele egale, se va afișa nu exista.
Barbulescu Robert Cristian
Clasa a 9-a G
Restricţii şi precizări
2 ≤ m,n ≤ 50
Exemplu
Date de intrare
4 5
2 3 7 5 7
3 3 7 4 7
7 3 7 1 7
8 3 7 6 7
Date de ieșire
3 7 7
#include <iostream>
int main()
{
int n,m,v[101][101];
bool t=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int j=1;j<=m;j++)
{
bool ok=0;
for(int i=1;i<n;i++)
if(v[i][j]!=v[i+1][j])
Barbulescu Robert Cristian
Clasa a 9-a G
ok=1;
if(ok==0)
cout<<v[1][j]<<' ', t=1;
}
if(t==0)
cout<<"nu exista";
return 0;
}
29. #768
Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Determinați suma
valorilor pare distincte din matrice. Dacă o valoare pară apare în matrice de mai multe ori, se
va aduna o singură dată.
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran suma căutată S.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 10000
Exemplu
Date de intrare
4 6
4 20 15 23 18 9
Barbulescu Robert Cristian
Clasa a 9-a G
1 8 23 22 14 18
17 15 13 18 12 15
3 18 8 20 12 5
Date de ieșire
98
#include <iostream>
using namespace std;
int main()
{
int n,m,v[101][101],s=0,a[10001],p=1;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
if(v[i][j]%2==0)
{
s=s+v[i][j];
a[p]=v[i][j];
p++;
}
}
p--;
for(int i=1;i<p;i++)
{
for(int j=i+1;j<=p;j++)
if(a[i]==a[j])
{
s-=a[j];
a[j]=0;
}
Barbulescu Robert Cristian
Clasa a 9-a G
}
cout<<s;
return 0;
}
30. #766
Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Determinați indicele
liniei care conține număr maxim de elemente pare. Dacă există mai multe linii cu număr
maxim de elemente pare, se vor afișa toți indicii, în ordine crescătoare.
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale,
separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran indicii liniilor cu număr maxim de elemente pare, în ordine
crescătoare, separați prin câte un spaţiu.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 10000
liniile matricei au indici de la 1 la n.
Exemplu
Date de intrare
4 6
4 20 15 23 18 9
1 8 23 22 14 18
17 15 13 18 12 15
3 18 8 20 12 5
Date de ieșire
Barbulescu Robert Cristian
Clasa a 9-a G
2 4
#include <iostream>
int c[101];
int main()
{
int n,m,v[101][101],M=-1;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
if(v[i][j]%2==0)
c[i]++;
}
if(c[i]>M)
M=c[i];
}
for(int i=1;i<=n;i++)
{
if(c[i]==M)
cout<<i<<' ';
}
return 0;
Barbulescu Robert Cristian
Clasa a 9-a G
31. #662
Cerința
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine indicele
liniei pentru care suma elementelor pare este maximă.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere naturale,
reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran numărul I, reprezentând indicele determinat.
Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m
matricea conține cel puțin un element par
dacă sunt mai multe linii cu suma elementelor pare maximă, se poate afișa indicele oricăreia
Exemplu
Intrare
3 4
5 5 10 5
3 9 1 2
4 10 1 2
Ieșire
#include <iostream>
Barbulescu Robert Cristian
Clasa a 9-a G
int s[101];
int main()
{
int n,m,v[101][101],M=-1,I;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
if(v[i][j]%2==0)
s[i]+=v[i][j];
}
if(s[i]>M)
M=s[i];
}
for(int i=1;i<=n;i++)
{
if(s[i]==M)
I=i;
}
cout<<I;
return 0;
}
32. #316
Cerinţa
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numerele m şi n, iar apoi m*n numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran matricea modificată, câte o linie a matricei pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricţii şi precizări
1 ≤ m,n ≤ 20
elementele matricei vor fi mai mici decât 10000
Exemplu
Date de intrare
4 4
8 3 3 7
2 1 6 5
8 7 3 1
9 8 7 1
Date de ieșire
8 1 3 1
2 1 6 1
8 1 3 1
9 1 7 1
#include <iostream>
int main()
{
int n,m,v[101][101],M=999999999;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>v[i][j];
if(v[i][j]<M)
M=v[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(v[i][j]==M)
{
for(int p=1;p<=n;p++)
v[p][j]=M;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
return 0;
}
Barbulescu Robert Cristian
Clasa a 9-a G
33. #796
Cerința
Se dă o matrice cu m linii și n coloane și elemente numere naturale cu cel mult patru cifre. Să
se modifice matricea, eliminând penultima linie și penultima coloană.
Date de intrare
Programul citește de la tastatură numerele m n, iar apoi m*n numere naturale, reprezentând
elementele matricei.
Date de ieșire
Programul va afișa pe ecran matricea obținută fiecare linie a matricei pe câte o linie a
ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Restricții și precizări
3 ≤ m,n ≤ 50
Exemplu
Intrare
4 5
5 1 2 3 4
8 2 2 5 3
2 1 7 3 9
3 0 9 8 5
Ieșire
5 1 2 4
8 2 2 3
3 0 9 5
#include <iostream>
Barbulescu Robert Cristian
Clasa a 9-a G
int main()
{
int n,m,v[51][51];
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(i!=n-1 && j!=m-1)
cout<<v[i][j]<<' ';
if(i!=n-1)
cout<<endl;
}
return 0;
}
34. #3120
Cerința
Un tablou bidimensional cu număr impar de coloane este numit simetric faţă de coloana din
mijloc dacă, pe fiecare linie a tabloului, elementele dispuse simetric faţă de elementul din
mijloc al liniei respective au valori egale.
Scrieţi un program care citește de la tastatură două numere naturale, m și n (n impar), și
elementele unui tablou bidimensional cu m linii și n coloane, numere naturale. Programul
afișează pe ecran mesajul DA, dacă tabloul este simetric față de coloana din mijloc, sau
mesajul NU în caz contrar.
Date de intrare
Programul citește de la tastatură numerele m și n , iar apoi cele n*m elemente ale matricei.
Barbulescu Robert Cristian
Clasa a 9-a G
Date de ieșire
Programul va afișa pe ecran mesajul DA sau NU, conform eununțului.
Restricții și precizări
3 ≤ n, m ≤ 21
numerele citite din matrice vor fi mai mici decât 10.000
Exemplu
Intrare
4 5
1 2 4 2 1
3 5 5 5 3
2 4 1 4 2
1 1 1 1 1
Ieșire
DA
#include <iostream>
int main()
{
int n,m,v[22][22];
bool ok=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<=n;i++)
Barbulescu Robert Cristian
Clasa a 9-a G
{
for(int j=1;j<=m/2;j++)
if(v[i][j]!=v[i][m-j+1])
ok=1;
}
if(ok==0)
cout<<"DA";
else
cout<<"NU";
return 0;
}
35. #668
Cerința
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine câte
perechi de linii consecutive din matrice sunt identice.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere naturale,
reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran numărul C numere, reprezentând valoare determinată.
Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
Exemplu
Intrare
Barbulescu Robert Cristian
Clasa a 9-a G
5 3
10 2 5
2 1 4
2 1 4
7 10 9
7 10 9
Ieșire
Explicație
Sunt identice a doua și a treia linie, respectiv a patra și a cincea.
#include <iostream>
int main()
{
int n,m,v[101][101],c=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<n;i++)
{
bool ok=0;
for(int j=1;j<=m;j++)
if(v[i][j]!=v[i+1][j])
ok=1;
if(ok==0)
c++;
}
cout<<c;
Barbulescu Robert Cristian
Clasa a 9-a G
return 0;
}
36. #762
Cerința
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine
câte perechi de linii din matrice sunt identice.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere
naturale, reprezentând elementele matricei.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoare determinată.
Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
Exemplu
Intrare
6 3
10 2 5
2 1 4
10 2 5
7 10 9
10 2 5
2 1 4
Ieșire
4
Barbulescu Robert Cristian
Clasa a 9-a G
Explicație
Sunt identice următoarele perechi de linii: (1 3) (1 5) (2 6) (3 5).
#include <iostream>
int main()
{
int n,m,v[101][101],c=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<n;i++)
{
for(int p=i+1;p<=n;p++)
{
bool ok=0;
for(int j=1;j<=m;j++)
if(v[i][j]!=v[p][j])
ok=1;
if(ok==0)
c++;
}
}
cout<<c;
return 0;
}
37. #619
Cerinţa
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran matricea modificată, câte o linie a matricei pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 10000
Exemplu
Date de intrare
4 6
4 20 15 23 18 9
1 8 23 22 14 18
17 18 13 18 12 15
3 18 8 20 12 5
Date de ieșire
4 9 15 18 20 23
1 8 14 18 22 23
12 13 15 17 18 18
3 5 8 12 18 20
#include <iostream>
int main()
{
int n,m,v[101][101];
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int i=1;i<=n;i++)
{
bool ok=0;
while(ok==0)
{
ok=1;
for(int j=1;j<m;j++)
if(v[i][j]>v[i][j+1])
{
swap(v[i][j],v[i][j+1]);
ok=0;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
return 0;
}
38. #620
Cerinţa
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin
spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran matricea modificată, câte o linie a matricei pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 10000
Exemplu
Date de intrare
4 6
4 20 15 23 18 9
1 8 23 22 14 18
17 18 13 18 12 15
3 18 8 20 12 5
Date de ieșire
17 20 23 23 18 18
4 18 15 22 14 15
3 18 13 20 12 9
1 8 8 18 12 5
#include <iostream>
int main()
{
int n,m,v[101][101];
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>v[i][j];
for(int j=1;j<=m;j++)
{
bool ok=0;
while(ok==0)
{
ok=1;
for(int i=1;i<n;i++)
if(v[i][j]<v[i+1][j])
{
swap(v[i][j],v[i+1][j]);
ok=0;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
return 0;
}
39. #191
Se dă o matrice cu n linii și m coloane și elemente numere întregi.
Barbulescu Robert Cristian
Clasa a 9-a G
Cerinţa
Să se determine, pentru fiecare linie a matricei, valoarea maximă și indicele coloanei pe care
se află valoarea maximă.
Date de intrare
Fişierul de intrare maxmat.in conţine pe prima linie numerele n și m, iar următoarele n linii
câte m numere întregi, reprezentând elementele matricei.
Date de ieşire
Fişierul de ieşire maxmat.out va conţine n linii; pe fiecare linie se vor afla două numere,
separate prin exact un spațiu, reprezentând valoarea maximă de pe linia curentă și indicele
coloanei pe care se află aceasta .
Restricţii şi precizări
1 ≤ n,m ≤ 25
elementele matricei aparțin intervalului [-1000,1000]
dacă pe o linie a matricei, elementul maxim apare de mai multe ori, se va afișa indicele de
coloană minim
liniile și coloanele matricei sunt numerotate de la 1
Exemplu
maxmat.in
4 5
-2 -9 7 -7 -7
1 -7 -8 -1 4
8 2 5 -7 2
8 -9 -7 10 -9
maxmat.out
7 3
4 5
8 1
10 4
Barbulescu Robert Cristian
Clasa a 9-a G
#include <iostream>
#include <fstream>
ifstream fin("maxmat.in");
ofstream fout("maxmat.out");
int main()
{
int n,m,v[26][26];
fin>>n>>m;
for(int i=1;i<=n;i++)
{
int M=-999999999,jM;
for(int j=1;j<=m;j++)
{
fin>>v[i][j];
if(v[i][j]>M)
{
M=v[i][j];
jM=j;
}
}
fout<<M<<' '<<jM<<endl;
}
return 0;
}
40. #314
Cerinţa
Barbulescu Robert Cristian
Clasa a 9-a G
Date de intrare
Fişierul de intrare colzero.in conţine pe prima linie numerele m şi n, iar pe
următoarele m linii câte n numere naturale separate prin spaţii, reprezentând elementele
tabloului.
Date de ieşire
Fişierul de ieşire colzero.out va conţine numărul NR, reprezentând valoarea determinată.
Restricţii şi precizări
2≤m,n≤10
elementele tabloului sunt ≤ 1000;
Exemplu
colzero.in
4 5
2 0 3 0 0
4 0 3 0 0
1 0 3 0 0
4 0 3 0 0
colzero.out
#include <iostream>
#include <fstream>
ifstream fin("colzero.in");
ofstream fout("colzero.out");
Barbulescu Robert Cristian
Clasa a 9-a G
int main()
{
int n,m,v[11][11],c=0;
fin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
fin>>v[i][j];
}for(int j=1;j<=m;j++)
{
bool ok=0;
for(int i=1;i<=n;i++)
{
if(v[i][j]!=0)
ok=1;
}
if(ok==0)
c++;
}
fout<<c;
return 0;
}