Submission #1100211

#TimeUsernameProblemLanguageResultExecution timeMemory
1100211vjudge1Maxcomp (info1cup18_maxcomp)C++17
15 / 100
379 ms524288 KiB
//UNSTOPPABLE #include "bits/stdc++.h" #include <ext/pb_ds/assoc_container.hpp> #define ll long long #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front // #define int long long #define F first #define S second #define all(x) (x).begin(), (x).end() #define pii pair<int,int> #define tpii pair <pair <int,int> , int> #define bruh cout << "NO\n" using namespace std; using namespace __gnu_pbds; const int N = 1e3 + 5 , M = 1e6 + 5; int mod = 1e9 + 7; const int INF = 1e9; int n,m,a[51][51],num[51][51],val[2501],used[2501],mx[2501][2501],mn[2501][2501]; vector <int> g[2501],dist[2501][2501]; void Goldik(){ cin >> n >> m; int cur = 0; for(int i = 1 ; i <= n ; i++){ for(int j = 1 ; j <= m ; j++){ cin >> a[i][j]; num[i][j] = ++cur; val[cur] = a[i][j]; } } for(int i = 1 ; i <= n ; i++){ for(int j = 1 ; j <= m ; j++){ int x = num[i][j]; if(i != 1){ g[x].pb(num[i - 1][j]); } if(j != 1){ g[x].pb(num[i][j - 1]); } if(i != n){ g[x].pb(num[i + 1][j]); } if(j != m){ g[x].pb(num[i][j + 1]); } } } for(int i = 1 ; i <= cur ; i++){ for(int j = 1 ; j <= cur ; j++){ dist[i][j].pb(INF); mx[i][j] = -INF; mn[i][j] = INF; } } int ans = -INF; for(int i = 1 ; i <= cur ; i++){ for(int j = 1 ; j <= cur ; j++) used[j] = 0; deque <int> q = {}; q.pb(i); dist[i][i].clear(); dist[i][i].pb(i); used[i] = 1; mx[i][i] = val[i]; mn[i][i] = val[i]; while(q.size()){ int v = q.front(); q.ppf(); used[v] = 1; for(auto to : g[v]){ if(!used[to]){ if(dist[i][to].back() == INF || dist[i][to].size() > dist[i][v].size() + 1){ dist[i][to] = dist[i][v]; dist[i][to].pb(to); mx[i][to] = max(mx[i][v] , val[to]); mn[i][to] = min(mn[i][v] , val[to]); q.pb(to); } } } } for(int j = 1 ; j <= cur ; j++){ ans = max(ans , mx[i][j] - mn[i][j] - (int)dist[i][j].size()); } } cout << ans; } //rewai mnogo zadach vozmozhno odna iz nih gde to popadetsya //returning winter prime? //chem prowe tem luchshe signed main(/*AZ AZDAN UZDIKSIZ*/){ //freopen("txt.in","r",stdin); //freopen("txt.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); srand(time(0)); int TT = 1; // cin >> TT; for(int i = 1 ; i <= TT ; i++){ //cout << "Case " << i << ": "; Goldik(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...