Rezolvare completă PbInfo #1749 Zona4

Considerăm o matrice pătratică cu N linii și N coloane. În această matrice sunt definite 4 zone:

  • zona 1, formată din elementele situate strict deasupra diagonalei principale și strict deasupra diagonalei secundare;
  • zona 2, formată din elementele situate strict deasupra diagonalei principale și strict sub diagonala secundară;
  • zona 3, formată din elementele situate strict sub diagonala principală și strict sub diagonala secundară;
  • zona 4, formată din elementele situate strict sub diagonala principală și strict deasupra diagonalei secundare;

Cerința

Se dă o matrice pătratică și un număr natural Z, reprezentând o zonă din matrice. Să se determine suma elementelor din zona Z.

Date de intrare

Programul citește de la tastatură numerele N Z, iar apoi N*N numere naturale, reprezentând elementele matricei.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma elementelor din zona Z a matricei.

Restricții și precizări

  • 1 ≤ N ≤ 200
  • 1 ≤ Z ≤ 4
  • elementele matricei vor fi mai mici decât 1000

Exemplu

Intrare

5 2
7 4 8 5 10 
7 7 10 2 2 
1 2 8 8 4 
9 9 5 3 2 
3 6 7 1 7 

Ieșire

16

Explicație

Elementele din zona 2 sunt 2 8 4 2, cu suma 16.

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

#include <iostream>
#include <algorithm>
#include <cassert>
using namespace std;

int n,a[202][202], z;

int main()
{
    assert(cin >> n >> z);
    for(int i = 1 ; i <= n ; ++i)
        for(int j = 1 ; j <= n ; ++j)
            assert(cin >> a[i][j]);
    int s = 0;
    for(int i = 1 ;i<= n ; i ++)
        for(int j = 1 ; j <= n ; j ++)
        {
            if(z == 1 && (i < j && i + j < n + 1))
                s += a[i][j];
            if(z == 2 && (i < j && i + j > n + 1))
                s += a[i][j];
            if(z == 3 && (i > j && i + j > n + 1))
                s += a[i][j];
            if(z == 4 && (i > j && i + j < n + 1))
                s += a[i][j];
        }
    cout << s;
    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 Adresa de email.

Rezolvarea problemei #1749 Zona4

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1749 Zona4 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!