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.
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
numerele de pe a doua linie a fișierului de intrare 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 linie și coloanele adiacente
Exemplu:
4 5
6 6 4 6 6
2 2 6 4 6
1 1 7 3 6
6 3 6 5 6
Afiseaza 9.
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
9.
Răspunsuri la întrebare
Răspuns de
3
yayyy am facut-o
enuntul problemei cred ca l-ai inteles, trebuie sa compari vecinii intre ei, doi cate doi
aici e codul de 100 de puncte
#include <fstream>
using namespace std;
ifstream fin ("vecini1.in");
ofstream fout ("vecini1.out");
int ok,n,m,a[103][103],i,j,st,dr,sus,jos,k;
int main()
{
fin>>n>>m;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
fin>>a[i][j];
for (i=0; i<=n+1; i++)
{
a[i][0]=-1;
a[i][m+1]=-1;
}
for (j=0; j<=m+1; j++)
{
a[0][j]=-1;
a[n+1][j]=-1;
}
for (i=1; i<=n; i++)
{
ok=1;
for (j=1; j<=m; j++)
{
ok=1;
st=a[i][j-1];
sus=a[i+1][j];
dr=a[i][j+1];
jos=a[i-1][j];
if (st==sus && sus!=-1 && st!=-1)
{
ok=0; }
{
if (st==dr && dr!=-1 && st!=-1)
{
ok=0;
}
{
if (st==jos && st!=-1 && jos!=-1)
{
ok=0;
}
{
if (sus==dr && dr!=-1 && sus!=-1)
ok=0;
{
if (sus==jos && sus!=-1 && jos!=-1)
ok=0;
{
if (dr==jos && dr!=-1 && jos!=-1)
ok=0;
}
}
}
}
}
if (ok==1)
{
k++;
}
}
}
fout<<k;
/*for (i=0; i<=n+1; i++)
{
for (j=0; j<=m+1; j++)
cout<<a[i][j]<<' ';
cout<<endl;
}*/
return 0;
}
enuntul problemei cred ca l-ai inteles, trebuie sa compari vecinii intre ei, doi cate doi
aici e codul de 100 de puncte
#include <fstream>
using namespace std;
ifstream fin ("vecini1.in");
ofstream fout ("vecini1.out");
int ok,n,m,a[103][103],i,j,st,dr,sus,jos,k;
int main()
{
fin>>n>>m;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
fin>>a[i][j];
for (i=0; i<=n+1; i++)
{
a[i][0]=-1;
a[i][m+1]=-1;
}
for (j=0; j<=m+1; j++)
{
a[0][j]=-1;
a[n+1][j]=-1;
}
for (i=1; i<=n; i++)
{
ok=1;
for (j=1; j<=m; j++)
{
ok=1;
st=a[i][j-1];
sus=a[i+1][j];
dr=a[i][j+1];
jos=a[i-1][j];
if (st==sus && sus!=-1 && st!=-1)
{
ok=0; }
{
if (st==dr && dr!=-1 && st!=-1)
{
ok=0;
}
{
if (st==jos && st!=-1 && jos!=-1)
{
ok=0;
}
{
if (sus==dr && dr!=-1 && sus!=-1)
ok=0;
{
if (sus==jos && sus!=-1 && jos!=-1)
ok=0;
{
if (dr==jos && dr!=-1 && jos!=-1)
ok=0;
}
}
}
}
}
if (ok==1)
{
k++;
}
}
}
fout<<k;
/*for (i=0; i<=n+1; i++)
{
for (j=0; j<=m+1; j++)
cout<<a[i][j]<<' ';
cout<<endl;
}*/
return 0;
}
stefaniamar:
(acoladele alea-s nefolositoare.)
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă