fbpx

Problema #635 – Vecini1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă o matrice cu n linii și m coloane și elemente numere naturale. Determinați pentru câte dintre elementele matricei toți vecinii au valori diferite între ele.

Date de intrare

Fișierul de intrare vecini1.in conține pe prima linie numerele n m; urmează n linii cu câte m numere naturale separate prin spații – elementele matricei.

Date de ieșire

Fișierul de ieșire vecini1.out va conține pe prima linie numărul C, reprezentând valoarea cerută.

Restricții și precizări

  • 1 ≤ n,m ≤ 100
  • elementele matricei vor fi mai mici decât 1 000 000
  • considerăm că un element al matricei poate avea patru vecini: elementele situate pe aceeași linie și pe coloanele adiacente și elementele aflate pe aceeași coloană și liniile adiacente

Exemplu

vecini1.in

4 5
6 6 4 6 6 
2 2 6 4 6 
1 1 7 3 6 
6 3 6 5 6

vecini1.out

9

Explicație

Cele 9 elemente sunt marcate mai jos:

6 6 4 6 6
2 2 6 4 6
1 1 7 3 6
6 3 6 5 6
#include <bits/stdc++.h>
using namespace std;
ifstream fin("vecini1.in");
ofstream fout("vecini1.out");
int main()
{
    int n , m , a[102][102] , cnt = 0;
    fin >> n >> m;
    for(int i = 1 ; i <= n ; ++i)
    {
        for(int j = 1 ; j <= m ; ++j)
        {
            fin >> a[i][j];
            a[0][j] = 1000001;
            a[n + 1][j] = 1000002;
            a[i][0] = 1000003;
            a[i][m + 1] = 1000004;
        }
    }
    for(int i = 1 ; i <= n ; ++i)
    {
        for(int j = 1 ; j <= m; ++j)
        {
            if(a[i][j-1] != a[i][j+1] && a[i][j-1] != a[i-1][j] && a[i][j-1] != a[i+1][j] && a[i][j+1] != a[i-1][j] && a[i-1][j] != a[i+1][j] && a[i][j+1]  != a[i+1][j])
                cnt++;
        }
    }
    fout << cnt;

    fin.close();
    fout.close();

    return 0;
}
Comentarii

S-ar putea sa iti placa