#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mir signed
#define pii pair<int,int>
#define tup tuple<int,int,int>
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define endl << '\n'
const int inf = 1e9;
int n,m;
vector<int> dx = {0,1,0,-1},dy = {1,0,-1,0};
void maxx(int &a,int b){
a = max(a,b);
}
void minn(int &a,int b){
a = min(a,b);
}
bool valid(int i,int j){
if(i > 0 && j > 0 && j <= m && i <= n)return 1;
return 0;
}
void solve(){
cin >> n >> m;
vector<vector<int>> sira(n+1,vector<int>(m+1)),temp;
for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)cin >> sira[i][j];
temp = sira;
for(int i=1;i<=n;++i){
for(int j=2;j<=m;++j)minn(sira[i][j],sira[i][j-1] + 1);
for(int j=m-1;j>0;--j)minn(sira[i][j],sira[i][j+1] + 1);
}
for(int j=1;j<=m;++j){
for(int i=2;i<=n;++i)minn(sira[i][j],sira[i-1][j] + 1);
for(int i=n-1;i>0;--i)minn(sira[i][j],sira[i+1][j] + 1);
}
int cvb = 0;
for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)maxx(cvb,temp[i][j] - sira[i][j]);
cout << cvb - 1;
}
mir main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |