Sunteți pe pagina 1din 74

Barbulescu Robert Cristian

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>

using namespace std;

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>

using namespace std;

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

Se citește n, apoi n numere naturale distincte, reprezentând elementele unui vector.

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

using namespace std;

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>

using namespace std;


Barbulescu Robert Cristian
Clasa a 9-a G

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++;

if(v[i]%3==0 && i%2==1)

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>

using namespace std;

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

Programul va afișa pe ecran n-1 valori întregi, separate printr-un spațiu, reprezentând


elementele șirului după ștergere.

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>

using namespace std;


int main()
{
int n,p,v[1501];
cin>>n>>p;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
if(i==p)
{
for(int j=i+1;j<=n;j++)
v[j-1]=v[j];
n--;
}
for(int i=1;i<=n;i++)
Barbulescu Robert Cristian
Clasa a 9-a G

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>

using namespace std;


Barbulescu Robert Cristian
Clasa a 9-a G

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>

using namespace std;


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++)
if(v[i]%2!=0)
{
cout<<v[i]<<' ';
}

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>

using namespace std;


int main()
{
int n,v[1001];
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++)
{
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>

using namespace std;

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

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 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>

using namespace std;

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>

using namespace std;

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

using namespace std;

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>

using namespace std;

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++)

if(a[j]==v[i] && ok2!=1)

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>

using namespace std;

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>

using namespace std;

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

100 312 276 985 5021

Ieșire

12359

#include <iostream>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

int main()

long long int n,x,s=0;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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

using namespace std;

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>

using namespace std;

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>

using namespace std;

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

Liniile 2 și 4 din matrice conțin număr maxim de elemente pare, 4

#include <iostream>

using namespace std;

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

using namespace std;

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

Se dă o matrice cu m linii şi n coloane şi elemente numere naturale. Înlocuiţi cu valoarea


minimă din matrice toate elementele de pe coloanele care conţin valoarea minimă.

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>

using namespace std;


Barbulescu Robert Cristian
Clasa a 9-a G

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

using namespace std;

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>

using namespace std;

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>

using namespace std;

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>

using namespace std;

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

Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Ordonați crescător


elementele de pe fiecare linie a matricei și apoi afişați matricea.

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>

using namespace std;


Barbulescu Robert Cristian
Clasa a 9-a G

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

Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Ordonați descrescător


elementele de pe fiecare coloană a matricei și apoi afișați matricea.

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>

using namespace std;


Barbulescu Robert Cristian
Clasa a 9-a G

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>

using namespace std;

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

Se consideră tabloul bidimensional cu m linii şi n coloane şi elemente numere naturale. Să se


determine numărul de coloane care conţin doar elemente egale cu 0.

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>

using namespace std;

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;
}

S-ar putea să vă placă și