제출 #1297391

#제출 시각아이디문제언어결과실행 시간메모리
1297391metricCultivation (JOI17_cultivation)C++20
0 / 100
149 ms327680 KiB
#include<bits/stdc++.h> #define ii pair<int,int> #define st first #define nd second using namespace std; const int N=10000; int n,m,q,ans,a[N][N],vis[N][N],kq[N][N]; int dong[]={-1,0,0,1}, cot[]={0,1,-1,0}; void bfs(int x, int y) { memset(vis,-1,sizeof(vis)); vis[x][y]=0; queue<ii>q; q.push({x,y}); while(!q.empty()) { ii tmp=q.front(); q.pop(); int u=tmp.st, v=tmp.nd; for(int k=0;k<4;k++) { int c=u+dong[k], d=v+cot[k]; if (d>0&&d<=m&&c>0&&c<=n&&vis[c][d]==-1) { vis[c][d]=vis[u][v]+1; kq[c][d]=min(kq[c][d],vis[c][d]); q.push({c,d}); } } } } int main() { ios_base::sync_with_stdio(false);cin.tie(0); //freopen("DISPERSAL.inp","r",stdin);freopen("DISPERSAL.out","w",stdout); cin>>n>>m>>q; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) kq[i][j]=INT_MAX; } for(int x,y,i=1;i<=q;i++) { cin>>x>>y; kq[x][y]=0; bfs(x,y); } int ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) ans=max(ans,kq[i][j]); } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...