Submission #1174428

#TimeUsernameProblemLanguageResultExecution timeMemory
1174428PacybwoahMaxcomp (info1cup18_maxcomp)C++20
100 / 100
79 ms39752 KiB
#include<iostream> #include<vector> #include<algorithm> #include<utility> #include<cmath> using namespace std; typedef long long ll; const ll inf = 1e18; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector<vector<ll>> vec(n + 1, vector<ll>(m + 1)), tl(n + 2, vector<ll>(m + 2, -inf)), tr(n + 2, vector<ll>(m + 2, -inf)), bl(n + 2, vector<ll>(m + 2, -inf)), br(n + 2, vector<ll>(m + 2, -inf)); for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> vec[i][j]; ll ans = 0; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ tl[i][j] = max(tl[i - 1][j], tl[i][j - 1]); tl[i][j] = max(tl[i][j], -vec[i][j] + i + j); } } for(int i = 1; i <= n; i++){ for(int j = m; j > 0; j--){ tr[i][j] = max(tr[i - 1][j], tr[i][j + 1]); tr[i][j] = max(tr[i][j], -vec[i][j] + i - j); } } for(int i = n; i > 0; i--){ for(int j = 1; j <= m; j++){ bl[i][j] = max(bl[i + 1][j], bl[i][j - 1]); bl[i][j] = max(bl[i][j], -vec[i][j] - i + j); } } for(int i = n; i > 0; i--){ for(int j = m; j > 0; j--){ br[i][j] = max(br[i + 1][j], br[i][j + 1]); br[i][j] = max(br[i][j], -vec[i][j] - i - j); } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ ans = max(ans, vec[i][j] - i - j + tl[i][j]); ans = max(ans, vec[i][j] - i + j + tr[i][j]); ans = max(ans, vec[i][j] + i - j + bl[i][j]); ans = max(ans, vec[i][j] + i + j + br[i][j]); } } cout << ans - 1 << "\n"; } // g++ -std=c++17 -Wall -Wextra -Wshadow -fsanitize=undefined -fsanitize=address -o run pA.cpp -g
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...