Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4.  
  5. long long tmp,a[101][101],n;
  6.  
  7. bool loang(long long mmin,long long mmax)
  8. {
  9. long long check[101][101] = {0};
  10. long long tkx[4] = {-1,0,1,0};
  11. long long tky[4] = {0,1,0,-1};
  12. long long qx[101], qy[101];
  13. long long u,v,u1,v1;
  14. if (a[1][1]< mmin || a[1][1] > mmax)
  15. {
  16. return false;
  17. }
  18. qx[1] = 1;
  19. qy[1] = 1;
  20. long long first = 1;
  21. long long last = 1;
  22. check[1][1] = 1;
  23.  
  24. while(first <= last)
  25. {
  26. u = qx[first];
  27. v = qy[first];
  28. first++;
  29.  
  30. for(long long t = 0; t < 4; t++)
  31. {
  32. u1 = u + tkx[t];
  33. v1 = v + tky[t];
  34. if (u1>=1 && u1 <=n && v1>=1 && v1<=n && check[u1][v1]==0 && a[u1][v1]<=mmax&&a[u1][v1]>=mmin)
  35. {
  36. last++;
  37. qx[last] = u1;
  38. qy[last] = v1;
  39. check[u1][v1] = 1;
  40. }
  41. }
  42.  
  43.  
  44. }
  45.  
  46. if(check[n][n] == 1) return true;
  47. return false;
  48.  
  49. }
  50.  
  51. int main()
  52. {
  53. long long i,j;
  54. cin >> n;
  55.  
  56. for(i = 1; i <= n; i++)
  57. {
  58. for(j = 1; j <= n; j++)
  59. {
  60. cin >> a[i][j];
  61. }
  62. }
  63.  
  64.  
  65. long long l=1,h=110,ans,m;
  66. while (l<=h)
  67. {
  68. m =(l+h)/2;
  69. bool ok= false;
  70. for(long long mmin = 0; mmin <= 110; mmin++)
  71. {
  72. if(loang(mmin,mmin+m) == true)
  73. {
  74. ok= true;
  75. break;
  76. }
  77. }
  78. if(ok==true)
  79. {
  80. h = m - 1;
  81. ans = m;
  82. }
  83. else
  84.  
  85. {
  86.  
  87. l = m + 1;
  88. }
  89. }
  90.  
  91.  
  92. cout << ans;
  93.  
  94.  
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement