Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n,m,mp[1010][1010],sur,dayIn[1010][1010],getInf[1010][1010];
- bool infected[1010][1010];
- void isInf(int i,int j,int day){
- if(i<1||j< 1||i>n||j>m){exit;}
- else if(mp[i][j]>day){
- if(getInf[i][j]>day){
- getInf[i][j]=day;
- isInf(i+1,j,day+1);
- isInf(i-1,j,day+1);
- isInf(i,j+1,day+1);
- isInf(i,j-1,day+1);
- }
- else if(!infected[i][j]){
- infected[i][j]=true;
- sur++;
- getInf[i][j]=day;
- isInf(i+1,j,day+1);
- isInf(i-1,j,day+1);
- isInf(i,j+1,day+1);
- isInf(i,j-1,day+1);
- }
- }
- }
- int main(){
- scanf("%d %d",&n,&m);
- for(int i=1;i<=n;i++){
- for(int j=1;j<=m;j++){
- scanf("%d",&mp[i][j]);
- }
- }
- for(int i=1;i<=n;i++){
- for(int j=1;j<=m;j++){
- if(mp[i][j]==0){
- infected[i][j]=true; sur++;
- isInf(i+1,j,1);
- isInf(i-1,j,1);
- isInf(i,j+1,1);
- isInf(i,j-1,1);
- }
- }
- }
- printf("%d",(n*m)-sur);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement