Cerinţa
Se dă o matrice cu n
linii şi n
coloane şi elemente numere naturale. Cele două diagonale delimitează în matrice 4
zone:
NORD
– elementele situate deasupra diagonalei principale şi deasupra celei secundareEST
– elementele situate deasupra diagonalei principale şi sub cea secundarăSUD
– elementele situate sub diagonala principală şi sub cea secundarăVEST
– elementele situate sub diagonala principală şi deasupra celei secundare
Să se afişeze, în ordine crescătoare, sumele elementelor din cele patru zone.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n*n
numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran numerele S1 S2 S3 S4
, separate printr-un spaţiu, în ordine crescătoare.
Restricţii şi precizări
1 ≤ n ≤ 100
- elementele matricei vor fi mai mici decât
1.000
Exemplu
Date de intrare
5 3 1 8 5 4 7 8 5 1 2 2 2 6 7 3 9 8 1 3 6 7 5 3 1 7
Date de ieșire
10 18 19 20
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Zone1:
#include <iostream>
#include <algorithm>
#define NORD 1
#define EST 2
#define SUD 3
#define VEST 4
using namespace std;
int n,a[102][102], v[5];
int main()
{
cin >> n;
for(int i = 1 ; i <= n ; ++i)
for(int j = 1 ; j <= n ; ++j)
cin >> a[i][j];
for(int i = 1 ; i <= n ; i ++ )
for(int j =1 ; j <= n ; j ++)
if(i!=j && i + j != n + 1)
if(i < j)
if(i + j < n + 1)
v[NORD] += a[i][j];
else
v[EST] += a[i][j];
else
if(i + j < n + 1)
v[VEST] += a[i][j];
else
v[SUD] += a[i][j];
for(int i =1 ; i < 4; i ++)
for(int j = i + 1 ; j <= 4 ; j ++)
if(v[i] > v[j])
{
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
for(int i =1 ; i <= 4; i ++)
cout << v[i] << " ";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #781 Zone1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #781 Zone1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!