Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define M 8
  5. #define N 6
  6.  
  7. int Solve(int Mat[1003][1003], int m, int n, int &max_size)
  8. {
  9. if (m == 0 || n == 0){
  10. max_size = max(max_size, Mat[m][n]);
  11. return Mat[m][n];
  12. }
  13.  
  14. int left = Solve(Mat, m, n - 1, max_size);
  15.  
  16. int top = Solve(Mat, m - 1, n, max_size);
  17.  
  18. int top_left = Solve(Mat, m - 1, n - 1, max_size);
  19.  
  20.  
  21. int size = 0;
  22. if (Mat[m][n] == 2) {
  23. size = 1 + min (min(top, left), top_left);
  24. }
  25.  
  26. max_size = max(max_size, size);
  27.  
  28. return size;
  29. }
  30.  
  31. int mat[1003][1003];
  32.  
  33. int main()
  34. {
  35. int n;
  36. cin >> n;
  37. for(int i = 0; i < n; ++i)
  38. for(int j = 0; j < n; ++j)
  39. cin >> mat[i][j];
  40.  
  41.  
  42. int size = 0;
  43.  
  44. Solve(mat, n-1, n-1, size);
  45.  
  46. cout << size*size;
  47.  
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement