Pagini recente » Cod sursa (job #1383409) | Cod sursa (job #2882720) | Cod sursa (job #213629) | Cod sursa (job #384575) | Cod sursa (job #2272242)
#include <fstream>
using namespace std;
ifstream fin("tsunami.in");
ofstream fout("tsunami.out");
int n,m,h,i,j,v[1001][1001],dx[]={0,-1,0,1,0},dy[]={0,0,1,0,-1},nr;
struct numar{
int l,c;
}q[1000005];
bool viz[1001][1001];
void coada(int i, int j){
int l,c,lnou,cnou,p,u,r;
p=u=1;
q[1].l=i;
q[1].c=j;
viz[i][j]=1;
while(p<=u){
l=q[p].l;
c=q[p].c;
for(r=1;r<=4;r++){
lnou=l+dx[r];
cnou=c+dy[r];
if(v[lnou][cnou]<h && lnou>=1 && lnou<=n && cnou>=1 && cnou<=m && viz[lnou][cnou]==0){
q[++u].l=lnou;
q[u].c=cnou;
viz[lnou][cnou]=1;
if(v[lnou][cnou]>0)
nr++;
}
}
p++;
}
}
int main()
{
fin>>n>>m>>h;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>v[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(v[i][j]==0 && viz[i][j]==0)
coada(i,j);
fout<<nr;
return 0;
}