제출 #282865

#제출 시각아이디문제언어결과실행 시간메모리
282865kshitij_sodaniMaxcomp (info1cup18_maxcomp)C++14
100 / 100
158 ms24696 KiB
//#pragma GCC optimize("Ofast,unroll-loops")//
//#pragma GCC target("fma,avx")//,avx2,fma")
//#pragma GCC optimization ("O3")


/*#pragma GCC optimization ("unroll-loops")
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
*/
#include <bits/stdc++.h>
using namespace std;
typedef int64_t llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second


llo n,m;
llo it[1001][1001];
llo mi[1001][1001];
llo solve(){
	for(llo i=0;i<n+1;i++){
		for(llo j=0;j<m+1;j++){
			if(i==0 or j==0){
				mi[i][j]=1e18;
			}
			else{
				mi[i][j]=min(mi[i][j-1],mi[i-1][j]);
				mi[i][j]=min(it[i-1][j-1]-(i-1+j-1),mi[i][j]);
			}
		//	cout<<mi[i][j]<<":";
		}
		//cout<<endl;
	}


	llo kk=-1;
	for(llo i=0;i<n;i++){
		for(llo j=0;j<m;j++){
			kk=max(kk,it[i][j]-i-j-mi[i+1][j+1]-1);
		//	cout<<it[i][j]+i+j-mi[i+1][j+1]-1<<",,";
		}
		//cout<<endl;
	}
	//cout<<kk<<":"<<endl;
	return kk;




}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cin>>n>>m;
	for(llo i=0;i<n;i++){
		for(llo j=0;j<m;j++){
			cin>>it[i][j];
		}
	}
	llo ans=solve();
	for(llo i=0;i<n;i++){
		for(llo j=0;j<m/2;j++){
			swap(it[i][j],it[i][m-j-1]);
		}
	}
	ans=max(ans,solve());
	for(llo i=0;i<n/2;i++){
		for(llo j=0;j<m;j++){
			swap(it[i][j],it[n-i-1][j]);
		}
	}
	ans=max(ans,solve());

	for(llo i=0;i<n;i++){
		for(llo j=0;j<m/2;j++){
			swap(it[i][j],it[i][m-j-1]);
		}
	}
	ans=max(ans,solve());
	for(llo i=0;i<n;i++){
		for(llo j=0;j<m-1;j++){
			ans=max(ans,max(it[i][j],it[i][j+1])-min(it[i][j],it[i][j+1])-2);
		}
	}
	for(llo i=0;i<n-1;i++){
		for(llo j=0;j<m;j++){
			ans=max(ans,max(it[i][j],it[i+1][j])-min(it[i][j],it[i+1][j])-2);
		}
	}
	cout<<ans<<endl;




	return 0;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...