Submission #1183288

#TimeUsernameProblemLanguageResultExecution timeMemory
1183288Paz15The Kingdom of JOIOI (JOI17_joioi)C++20
100 / 100
597 ms16156 KiB
//fast #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(n) for(int i = 0 ; i<n ; i++) #define all(x) x.begin(),x.end() #define pb push_back const int base = 2e3+7; int a[base][base]; int n,m; int mini,maks; void flipx(){ rep(n){ for (int j = 0 ; j<m/2 ; j++){ swap(a[i][j],a[i][m-j-1]); } } } void flipy(){ for (int j = 0 ; j<m ; j++){ rep(n/2){ swap(a[i][j],a[n-i-1][j]); } } } bool dasie(int x){ int last = m; int xd = 0; rep(n){ int c = 0; for (int j = 0 ; j<m ; j++){ if (a[i][j]<maks-x){ c = j; break; }else c = j+1; } for (int j = min(c,last) ; j<m ; j++){ xd = max(xd,a[i][j]); } last = min(c,last); } if (xd-mini<=x) return 1; return 0; } int wyn(){ int p = -1; int k = 1e9; while (k-p>1){ int s = (k+p)/2; if (dasie(s)) k = s; else p = s; } return k; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; mini = 1e9+7; rep(n){ for (int j = 0 ; j<m ; j++){ cin >> a[i][j]; mini = min(mini,a[i][j]); maks = max(maks,a[i][j]); } } int w = 1e9+7; w = min(w,wyn()); flipx(); w = min(w,wyn()); flipy(); w = min(w,wyn()); flipx(); w = min(w,wyn()); cout << w << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...