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