Submission #317092

#TimeUsernameProblemLanguageResultExecution timeMemory
317092daniel920712Maxcomp (info1cup18_maxcomp)C++14
100 / 100
210 ms8440 KiB
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;
int all[1005][1005];
int small1[1005][1005];

int main()
{
    int N,M,ans=-2e9,i,j,k,l;
    scanf("%d %d",&N,&M);
    for(i=1;i<=N;i++) for(j=1;j<=M;j++) scanf("%d",&all[i][j]);
    for(i=0;i<=N+1;i++) for(j=0;j<=M+1;j++) small1[i][j]=2e9;
    for(i=1;i<=N;i++)
    {
        for(j=1;j<=M;j++)
        {
            small1[i][j]=min(small1[i][j],small1[i-1][j]);
            small1[i][j]=min(small1[i][j],small1[i][j-1]);
            small1[i][j]=min(small1[i][j],all[i][j]-i-j);
            ans=max(ans,all[i][j]-i-j-small1[i][j]);
        }
    }

    for(i=0;i<=N+1;i++) for(j=0;j<=M+1;j++) small1[i][j]=2e9;
    for(i=N;i>=1;i--)
    {
        for(j=1;j<=M;j++)
        {
            small1[i][j]=min(small1[i][j],small1[i+1][j]);
            small1[i][j]=min(small1[i][j],small1[i][j-1]);
            small1[i][j]=min(small1[i][j],all[i][j]+i-j);
            ans=max(ans,all[i][j]+i-j-small1[i][j]);
        }
    }

    for(i=0;i<=N+1;i++) for(j=0;j<=M+1;j++) small1[i][j]=2e9;
    for(i=1;i<=N;i++)
    {
        for(j=M;j>=1;j--)
        {
            small1[i][j]=min(small1[i][j],small1[i-1][j]);
            small1[i][j]=min(small1[i][j],small1[i][j+1]);
            small1[i][j]=min(small1[i][j],all[i][j]-i+j);
            ans=max(ans,all[i][j]-i+j-small1[i][j]);
        }
    }

    for(i=0;i<=N+1;i++) for(j=0;j<=M+1;j++) small1[i][j]=2e9;
    for(i=N;i>=1;i--)
    {
        for(j=M;j>=1;j--)
        {
            small1[i][j]=min(small1[i][j],small1[i+1][j]);
            small1[i][j]=min(small1[i][j],small1[i][j+1]);
            small1[i][j]=min(small1[i][j],all[i][j]+i+j);
            ans=max(ans,all[i][j]+i+j-small1[i][j]);
        }
    }

    printf("%d\n",ans-1);
    return 0;
}

Compilation message (stderr)

maxcomp.cpp: In function 'int main()':
maxcomp.cpp:11:26: warning: unused variable 'k' [-Wunused-variable]
   11 |     int N,M,ans=-2e9,i,j,k,l;
      |                          ^
maxcomp.cpp:11:28: warning: unused variable 'l' [-Wunused-variable]
   11 |     int N,M,ans=-2e9,i,j,k,l;
      |                            ^
maxcomp.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   12 |     scanf("%d %d",&N,&M);
      |     ~~~~~^~~~~~~~~~~~~~~
maxcomp.cpp:13:46: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   13 |     for(i=1;i<=N;i++) for(j=1;j<=M;j++) scanf("%d",&all[i][j]);
      |                                         ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...