Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int INF=2e9;
  4. int n;
  5.  
  6. struct node{
  7. int vi,vj,w;
  8. bool operator < (const node & rhs) const{
  9. return ! (w< rhs.w) ;
  10. }
  11. };
  12. int main(){
  13.  
  14. scanf("%d",&n);
  15. int si=-1,sj=-1,mx=0,ei=-1,ej=-1;
  16. vector <int> ar[n+5];
  17. vector <long long> dis[n+5];
  18. vector <bool> visited[n+5];
  19. vector <node> g[n+5][n+5];
  20. for(int i=1;i<=n;i++){
  21. ar[i].push_back(0);
  22. visited[i].push_back(0);
  23. dis[i].push_back(INF);
  24. for(int j=1;j<=n;j++){
  25. dis[i].push_back(INF);
  26. visited[i].push_back(0);
  27. int x;
  28. scanf("%d",&x);
  29. ar[i].push_back(x);
  30. if(ar[i][j]==0){
  31. if(si==-1 && sj==-1){
  32. si=i;
  33. sj=j;
  34. }
  35. else {
  36. ei=i;
  37. ej=j;
  38. }
  39. }
  40.  
  41. if(i>1){
  42. g[i][j].push_back({i-1,j,ar[i-1][j]});
  43. g[i-1][j].push_back({i,j,ar[i][j]});
  44. }
  45. if(j>1){
  46. g[i][j].push_back({ i,j-1,ar[i][j-1] });
  47. g[i][j-1].push_back({ i,j,ar[i][j] });
  48. }
  49. }
  50. }
  51.  
  52. priority_queue < node > pq;
  53.  
  54. dis[si][sj]=0;
  55. pq.push({ si,sj,dis[si][sj] });
  56.  
  57.  
  58. while(pq.size()>0){
  59. int ui=pq.top().vi , uj=pq.top().vj , d=pq.top().w;
  60. pq.pop();
  61.  
  62. if (visited[ui][uj])
  63. continue;
  64. visited[ui][uj]=true;
  65.  
  66. if(ar[ui][uj]>mx) mx=ar[ui][uj];
  67.  
  68. if( ei==ui && ej==uj ) {
  69. printf("%d ",mx);
  70. break;
  71. }
  72.  
  73. if(ar[ui][uj]>mx) mx=ar[ui][uj];
  74.  
  75. for(auto vw:g[ui][uj]){
  76. int vi,vj,w;
  77. vi=vw.vi;
  78. vj=vw.vj;
  79. w=vw.w;
  80. if(visited[vi][vj]==false && dis[ui][uj]+w<dis[vi][vj] ){
  81. dis[vi][vj] = dis[ui][uj] + w;
  82. pq.push({ vi,vj,ar[vi][vj]});
  83. }
  84. }
  85.  
  86. }
  87.  
  88.  
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement