Advertisement
pb_jiang

t3

Dec 20th, 2023
646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include <assert.h>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. bool is_square(const vector<vector<int>> &g, int r, int c, int len)
  6. {
  7.     if (r - len < 0 || c - len < 0)
  8.         return false;
  9.     for (int i = r; i >= r - len; --i)
  10.         if (g[i][c] == 0 || g[i][c - len] == 0)
  11.             return false;
  12.     for (int i = c; i >= c - len; --i)
  13.         if (g[r][i] == 0 || g[r - len][i] == 0)
  14.             return false;
  15.     return true;
  16. }
  17.  
  18. int main(int argc, char **argv)
  19. {
  20.     int n, m;
  21.     cin >> n >> m;
  22.     vector<vector<int>> g(n, vector<int>(m));
  23.     for (int i = 0; i < n; ++i)
  24.         for (int j = 0; j < m; ++j)
  25.             cin >> g[i][j];
  26.     int ans_r, ans_c, ans_w = 0;
  27.     for (int i = 0; i < n; ++i)
  28.         for (int j = 0; j < m; ++j) {
  29.             int max_d = min(i, j);
  30.             while (max_d >= ans_w) {
  31.                 if (is_square(g, i, j, max_d))
  32.                     ans_w = max_d + 1, ans_r = i, ans_c = j;
  33.                 max_d--;
  34.             }
  35.         }
  36.     cout << ans_r << ' ' << ans_c << ' ' << ans_w << endl;
  37.     return 0;
  38. };
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement