orazma

e.cpp

Jul 17th, 2026
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. char c[1001][1001], dp[1001][1001];
  5. int a[1001][1001];
  6.  
  7. void solve() {
  8.     int n, m;
  9.     cin >> n >> m;
  10.     for (int i = 1; i <= n; i++){
  11.         for (int j = 1; j <= m; j++)
  12.             cin >> a[i][j];
  13.     }
  14.  
  15.     vector <int> vec;
  16.     for (int i = 1; i * i <= a[1][1]; i++){
  17.         if (a[1][1] % i == 0){
  18.             vec.push_back(i);
  19.             if (i * i != a[1][1]){
  20.                 vec.push_back(a[1][1] / i);
  21.             }
  22.         }
  23.     }
  24.  
  25.     sort(vec.begin(), vec.end());
  26.     reverse(vec.begin(), vec.end());
  27.  
  28.     for (int div : vec){
  29.         for (int i = 1; i <= n; i++){
  30.             for (int j = 1; j <= m; j++){
  31.                 if (a[i][j] % div == 0){
  32.                     c[i][j] = 1;
  33.                 }
  34.                 else{
  35.                     c[i][j] = 0;
  36.                 }
  37.             }
  38.         }
  39.         dp[1][1] = 1;
  40.         for (int i = 1; i <= n; i++){
  41.             for (int j = 1; j <= m; j++){
  42.                 if (i == 1 && j == 1){
  43.                     continue;
  44.                 }
  45.                 dp[i][j] = 0;
  46.                 if (c[i][j] == 0){
  47.                     continue;
  48.                 }
  49.                 if (i > 1){
  50.                     dp[i][j] = max(dp[i][j], dp[i - 1][j]);
  51.                 }
  52.  
  53.                 if (j > 1){
  54.                     dp[i][j] = max(dp[i][j], dp[i][j - 1]);
  55.                 }
  56.             }
  57.         }
  58.         if (dp[n][m] == 1){
  59.             cout << div << '\n';
  60.             return;
  61.         }
  62.     }
  63. }
  64.  
  65. int main() {
  66.     int t;
  67.     cin >> t;
  68.     while (t--) {
  69.        solve();
  70.     }
  71. }
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment