fork download
  1. /*
  2.  
  3.  
  4.   """Bismillahir Rahmanur Rahim"""
  5.  
  6. */
  7. #include<bits/stdc++.h>
  8. using namespace std;
  9. #define pi 2*acos(0.0)
  10. #define ll long long int
  11. #define pb push_back
  12. #define pf push_front
  13. const ll sz = 1000001;
  14. #define mp make_pair
  15. #define ses '\n'
  16. #define stm istringstream
  17. #define gcd __gcd
  18. ll lcm(ll x,ll y){return (x*y)/gcd(x,y);}
  19. #define tin ll T;cin>>T; for(ll o=1;o<=T;o++)
  20. #define tout cout<<"Case "<<o<<": ";
  21. ll dr[]={-1,0,1,0};
  22. ll dc[]={0,1,0,-1};
  23. ll valid(ll r,ll c,ll x,ll y)
  24. {
  25. if(r>=0 && r<x && c>=0 && c<y)
  26. return 1;
  27. else return 0;
  28. }
  29. ll ar[480][480];
  30. ll dis[480][480],vis[480][480];
  31. ll mz,u,v;
  32. void bfs(ll a,ll b,ll x,ll y)
  33. {
  34. queue<pair<ll,ll> >q;
  35. q.push({a,b});
  36. vis[a][b]=1;
  37. dis[a][b]=0;
  38. mz=0;
  39. while(!q.empty())
  40. {
  41. ll p,k;
  42. p=q.front().first;
  43. k=q.front().second;
  44. q.pop();
  45. for(int i=0;i<4;i++)
  46. {
  47. ll r=p+dr[i];
  48. ll c=k+dc[i];
  49.  
  50. if(valid(r,c,x,y))
  51. {
  52. if(vis[r][c]==0)
  53. {
  54. if(ar[r][c]==1)
  55. {
  56. vis[r][c]=1;
  57. dis[r][c]=dis[p][k]+1;
  58. if(mz<dis[r][c])
  59. mz=dis[r][c],u=r,v=c;
  60. q.push({r,c});
  61. }
  62. }
  63. }
  64. }
  65. }
  66. }
  67.  
  68. int main()
  69. {
  70. //freopen ("input.txt","r",stdin);
  71. // freopen ("output.txt","w",stdout);
  72.  
  73. {
  74. ll x,y,a,b;
  75. scanf("%lld %lld",&x,&y);
  76. char c;
  77.  
  78. for(int i=0;i<y;i++)
  79. for(int j=0;j<x;j++)
  80. {
  81. cin>>c;
  82. if(c=='.')
  83. ar[i][j]=1,a=i,b=j;
  84. else ar[i][j]=2;
  85. }
  86. bfs(a,b,y,x);
  87. mz=0;
  88. for(int i=0;i<y;i++)
  89. {
  90. for(int j=0;j<x;j++)
  91. vis[i][j]=0,dis[i][j]=0;
  92. }
  93. bfs(u,v,y,x);
  94. //cout<<mz<<" "<<u<<" "<<v<<ses;
  95.  
  96. printf("%lld\n",mz);
  97.  
  98.  
  99.  
  100.  
  101. }
  102. return 0;
  103. }
  104. /* --------------------
  105.   | ~SOHAN~ |
  106.   | ~Chandler68~ |
  107.   --------------------
  108.   || VALAR MORGULIS||==|| ALL MEN MUST DIE ||
  109.   \\ Power Is Power//
  110.   || I Can Do This All day ||
  111.   // We are on a Break \\ // How you doin'? \\
  112.   || Say My Name || ~~ || I Am The Who Knocks ||
  113.   // I Am Ted Mosby Architect \\
  114.   || It Is Legen --wait for it -- dary ,Legendary ||
  115.   \\ Penny - Penny - Penny // -- Bazinga
  116.  
  117. */
  118.  
Runtime error #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty