제출 #1345733

#제출 시각아이디문제언어결과실행 시간메모리
1345733fatime_aslan_156Maxcomp (info1cup18_maxcomp)C++20
15 / 100
1 ms580 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
	ll n,m,ca=0;
	cin>>n>>m;
	vector<vector<ll>>v(n+5,vector<ll>(m+5)),a(n+5,vector<ll>(m+5)),b(n+5,vector<ll>(m+5)),c(n+5,vector<ll>(m+5)),d(n+5,vector<ll>(m+5));
	for(int i=1;i<=n;i++)
	{
	    for(int j=1;j<=m;j++)
	    {
	        cin>>v[i][j];
	    }
	}
	for(int i=n;i>=1;i--)
	{
	    for(int j=m;j>=1;j--)
	    {
	        a[i][j]=max({a[i][j+1],a[i+1][j],v[i][j]-i-j-1});
	    }
	}
	for(int i=n;i>=1;i--)
	{
	    for(int j=1;j<=m;j++)
	    {
	        b[i][j]=max({b[i][j-1],b[i+1][j],v[i][j]-i+j-1});
	    }
	}
	for(int i=1;i<=n;i++)
	{
	    for(int j=m;j>=1;j--)
	    {
	        c[i][j]=max({c[i][j+1],c[i-1][j],v[i][j]+i-j-1});
	    }
	}
	for(int i=1;i<=n;i++)
	{
	    for(int j=1;j<=m;j++)
	    {
	        d[i][j]=max({d[i][j-1],d[i-1][j],v[i][j]+i+j-1});
	    }
	}
	for(int i=1;i<=n;i++)
	{
	    for(int j=1;j<=m;j++)
	    {
	        ca=max(ca,a[i][j]-v[i][j]+i+j);
	        ca=max(ca,b[i][j]-v[i][j]+i-j);
	        ca=max(ca,c[i][j]-v[i][j]-i+j);
	        ca=max(ca,d[i][j]-v[i][j]-i-j);
	    }
	}
	cout<<ca;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...