Cod sursa(job #1370917)

Utilizator svasileVasile Sebastian svasile Data 3 martie 2015 18:03:13
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("tsunami.in");
ofstream g("tsunami.out");
#define MAX 488

int main()
{

 int n,m,nr=0,i,j,h;
  long a[MAX][MAX],b[MAX][MAX];

    f>>n;
    f>>m;
    f>>h;

    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
         {f>>a[i][j];
         b[i][j]=0;}
    for(i=0;i<n;i++)
      for(j=0;j<m;j++)
          {
          if(a[i+1][j]>0)
            b[i][j]++;
          if(a[i-1][j]>0&&i!=0)
            b[i][j]++;
          if(a[i][j-1]>0)
            b[i][j]++;
          if(a[i][j+1]>0)
            b[i][j]++;

          }

    for(i=1;i<n-1;i++)
        for(j=1;j<m-1;j++)
    {
        if(a[i][j]<h && b[i][j]<4&&a[i][j]!=0)
            nr++;
    }
    if(a[0][0]<h&&b[0][0]<2&&a[0][0]!=0)
    nr++;
    if(a[0][m-1]<h&&b[0][m-1]<2&&a[0][m-1]!=0)
    nr++;
    if(a[n-1][0]<h&&b[n-1][0]<2&&a[n-1][0]!=0)
    nr++;
    if(a[n-1][m-1]<h&&b[n-1][m-1]<2&&a[n-1][m-1]!=0)
    nr++;
    for(i=1;i<n-1;i++)
    {
        if(a[i][0]<h&&b[i][0]<3&&a[i][0]!=0)
            nr++;
        if(a[i][m-1]<h&&b[i][m-1]<3&&a[i][m-1]!=0)
            nr++;
    }
    for(i=1;i<m-1;i++)
    {
        if(a[0][i]<h&&b[0][i]<3&&a[0][i]!=0)
            nr++;
        if(a[n-1][i]<h&&b[n-1][i]<3&&a[n-1][i]!=0)
            nr++;
    }

        g<<nr;

    return 0;
}