Submission #197440

#TimeUsernameProblemLanguageResultExecution timeMemory
197440GSmerchMaxcomp (info1cup18_maxcomp)C++14
60 / 100
1084 ms57268 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; set<ll > St; for(int i = 1;i<=N;i++){ for(int j =1;j<=M;j++){ cin>>Mt[i][j]; used[i][j] = 1; St.insert(Mt[i][j]); } } queue<el > BFS; ll Ans = -Inf; for(ll x : St){ for(int i = 1;i<=N;i++){ for(int j =1;j<=M;j++){ used[i][j] = 1; if(x == Mt[i][j]){ BFS.push({i,j,1}); } } } while(sz(BFS)){ el a = BFS.front(); BFS.pop(); Ans = max(Ans, x - 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; }

Compilation message (stderr)

maxcomp.cpp: In function 'int main()':
maxcomp.cpp:44:8: warning: unused variable 'Mx' [-Wunused-variable]
     ll Mx = 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...