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...