Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("paznici.in");
- ofstream fout("paznici.out");
- int n,m,p;
- int a[201][201];
- short x[40005],y[40001];
- char P[201][201];
- const int dx[]={0, 0,1,-1},
- dy[]={1,-1,0, 0};
- void fill(int i,int j,int d)
- {
- int st,dr;
- st=dr=1;
- x[1]=i,y[1]=j;
- a[i][j]=1;
- P[i][j]='*';
- while(st<=dr)
- {
- int i=x[st],j=y[st];
- if(a[i][j]<=d)
- for(int k=0;k<4;++k)
- {
- int ii=i+dx[k],jj=j+dy[k];
- if(ii>0&&ii<=n&&jj>0&&jj<=m&&P[ii][jj]!='#'&&a[ii][jj]==0)
- {
- a[ii][jj]=a[i][j]+1;
- P[ii][jj]='*';
- ++dr;
- x[dr]=ii,y[dr]=jj;
- }
- }
- ++st;
- }
- }
- void resetare()
- {
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- a[i][j]=0;
- }
- int main()
- {
- fin>>n>>m>>p;
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- fin>>P[i][j];
- for (;p;--p)
- {
- resetare();
- int i,j,d;
- fin>>i>>j>>d;
- if(a[i][j]==0)
- fill(i,j,d);
- }
- int cnt=0;
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- if(P[i][j]=='-'&&a[i][j]==0)
- ++cnt;
- fout<<cnt;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement