제출 #1326831

#제출 시각아이디문제언어결과실행 시간메모리
1326831al95ireyizMaxcomp (info1cup18_maxcomp)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define vll vector<ll> #define len(x) (ll)x.size() const ll inf = 1e9, infl = 1e18; const ll MOD = 1e9 + 7; const ll maxn = 1e3 + 5; ll n, m, k = 0; ll a[maxn][maxn], dp[4][maxn][maxn]; void _() { // elebil mesele bele bir seye gelir ki, a[x1][y1] - a[x2][y2] - |x1 - x2| - |y1 - y2| - 1 // sonuncu modullu hisse 4 cur acilir ona gore 4 hal olur // (a[x1][y1] - x1 - y1) + (- a[x2][y2] + x2 + y2) - 1 // (a[x1][y1] + x1 - y1) + (- a[x2][y2] - x2 + y2) - 1 // (a[x1][y1] - x1 + y1) + (- a[x2][y2] + x2 - y2) - 1 // (a[x1][y1] + x1 + y1) + (- a[x2][y2] - x2 - y2) - 1 cin >> n >> m; for(ll i = 1; i <= n; i ++){ for(ll j = 1; j <= m; j ++){ cin >> a[i][j]; } } for(ll i = 0; i <= n + 1; i ++){ for(ll j = 0; j <= m + 1; j ++){ dp[0][i][j] = dp[1][i][j] = dp[2][i][j] = dp[3][i][j] = -infl; } } for(ll i = 1; i <= n; i ++){ for(ll j = 1; j <= m; j ++){ dp[0][i][j] = max({- a[i][j] + i + j, dp[0][i - 1][j], dp[0][i][j - 1]}); } } for(ll i = 1; i <= n; i ++){ for(ll j = m; j >= 1; j --){ dp[1][i][j] = max({- a[i][j] - i + j, dp[1][i - 1][j], dp[1][i][j + 1]}); } } for(ll i = n; i >= 1; i --){ for(ll j = 1; j <= m; j ++){ dp[2][i][j] = max({- a[i][j] + i - j, dp[2][i + 1][j], dp[2][i][j - 1]}); } } for(ll i = n; i >= 1; i --){ for(ll j = m; j >= 1; j --){ dp[3][i][j] = max({- a[i][j] - i - j, dp[3][i + 1][j], dp[3][i][j + 1]}); } } ll cv = -infl; for(ll i = 1; i <= n; i ++){ for(ll j = 1; j <= m; j ++){ cv = max(cv, a[i][j] - i - j + dp[0][i][j]); cv = max(cv, a[i][j] + i - j + dp[1][i][j]); cv = max(cv, a[i][j] - i + j + dp[2][i][j]); cv = max(cv, a[i][j] + i + j + dp[3][i][j]); } } cout << cv - 4 << '\n'; } signed main() { cin.tie(0)->sync_with_stdio(0); ll t = 1; // cin >> t; while(t --) _(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...