Submission #197433

#TimeUsernameProblemLanguageResultExecution timeMemory
197433GSmerchMaxcomp (info1cup18_maxcomp)C++14
0 / 100
2 ms376 KiB
#include <bits/stdc++.h> typedef long long ll; typedef long double ld; using namespace std; #define fi first #define se second #define sz(x) (x).size() #define pll pair<ll,ll > #define pb push_back #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define endln '\n' #define cont continue const ll MaxN = 1e3 + 100; const ll LogN = 20; ll Inf = 1e18; const ll dx[4] = { 0,1,0,-1 }; const ll dy[4] = { 1,0,-1,0 }; bool used[MaxN][MaxN]; ll Mt[MaxN][MaxN]; struct el{ ll x, y, a; }; int main() { #ifdef LOCAL ifstream cin("input.txt"); ofstream cout("output.txt"); #else //ifstream cin("points.in"); //ofstream cout("points.out"); #endif ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); ll N, M; cin>>N>>M; ll Mx = 0; for(int i = 1;i<=N;i++){ for(int j =1;j<=M;j++){ cin>>Mt[i][j]; used[i][j] = 1; Mx = max(Mx, Mt[i][j]); } } queue<el > BFS; ll Ans = 0; for(int i = 1;i<=N;i++){ for(int j =1;j<=M;j++){ if(Mx == Mt[i][j]){ BFS.push({i,j,1}); } } } // cerr<<Mx; while(sz(BFS)){ el a = BFS.front(); BFS.pop(); Ans = max(Ans, Mx - Mt[a.x][a.y] - a.a); if(!used[a.x][a.y]) cont; used[a.x][a.y] = 0; for(int i =0;i<4;i++){ if(used[a.x + dx[i]][a.y + dy[i]]){ BFS.push({a.x + dx[i], a.y + dy[i], a.a+1}); } } } cout<<Ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...