Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <queue>
- using namespace std;
- ifstream fin("tsunami.in");
- ofstream fout("tsunami.out");
- const int NMAX=1005;
- int a[NMAX][NMAX],n,m,h,nr=0;
- queue< pair< int, int> >q;
- void bordare()
- {
- for(int i=0;i<=n+1;i++)
- a[i][0]=a[i][m+1]=11;
- for(int j=0;j<=m+1;j++)
- a[0][j]=a[n+1][j]=11;
- }
- void citire()
- {
- fin>>n>>m>>h;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- fin>>a[i][j];
- if(a[i][j]==0)
- q.push({i,j});
- }
- }
- void afisare()
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- fout<<a[i][j]<<" ";
- fout<<endl;
- }
- }
- int main()
- {
- bordare();
- citire();
- int di[4]={0,1,0,-1};
- int dj[4]={1,0,-1,0};
- while(!q.empty())
- {
- int i=q.front().first;
- int j=q.front().second;
- for(int d=0;d<4;d++)
- {
- if(a[i+di[d]][j+dj[d]]<h && a[i+di[d]][j+dj[d]]!=0)
- {
- nr++;
- q.push({i+di[d],j+dj[d]});
- a[i+di[d]][j+dj[d]]=0;
- }
- }
- q.pop();
- }
- afisare();
- fout<<endl<<nr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement