376
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