Submission #45249

#TimeUsernameProblemLanguageResultExecution timeMemory
45249ikura355Maxcomp (info1cup18_maxcomp)C++14
15 / 100
2 ms776 KiB
#include<bits/stdc++.h> using namespace std; const int maxn = 1e3 + 5; int n,m; long long p[maxn][maxn]; long long mx[maxn][maxn]; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&p[i][j]); long long ans = -1; for(int x=1;x<=n;x++) { for(int y=1;y<=m;y++) { mx[x][y] = -p[x][y] + x + y; if(y!=1) mx[x][y] = max(mx[x][y], mx[x][y-1]); if(x!=1) mx[x][y] = max(mx[x][y], mx[x-1][y]); ans = max(ans, p[x][y] - x - y + mx[x][y] - 1); } } for(int x=n;x>=1;x--) { for(int y=1;y<=m;y++) { mx[x][y] = -p[x][y] - x + y; if(y!=1) mx[x][y] = max(mx[x][y], mx[x][y-1]); if(x!=n) mx[x][y] = max(mx[x][y], mx[x+1][y]); ans = max(ans, p[x][y] + x - y + mx[x][y] - 1); } } for(int x=1;x<=n;x++) { for(int y=m;y>=1;y--) { mx[x][y] = -p[x][y] + x - y; if(y!=m) mx[x][y] = max(mx[x][y], mx[x][y+1]); if(x!=1) mx[x][y] = max(mx[x][y], mx[x-1][y]); ans = max(ans, p[x][y] - x + y + mx[x][y] - 1); } } for(int x=n;x>=1;x--) { for(int y=m;y>=1;y--) { mx[x][y] = -p[x][y] - x - y; if(y!=m) mx[x][y] = max(mx[x][y], mx[x][y+1]); if(x!=x) mx[x][y] = max(mx[x][y], mx[x+1][y]); ans = max(ans, p[x][y] + x + y + mx[x][y] - 1); } } printf("%lld",ans); }

Compilation message (stderr)

maxcomp.cpp: In function 'int main()':
maxcomp.cpp:12:68: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
     for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&p[i][j]);
                                                            ~~~~~~~~^
maxcomp.cpp:42:17: warning: self-comparison always evaluates to false [-Wtautological-compare]
             if(x!=x) mx[x][y] = max(mx[x][y], mx[x+1][y]);
                ~^~~
maxcomp.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
maxcomp.cpp:12:54: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&p[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...