제출 #197254

#제출 시각아이디문제언어결과실행 시간메모리
197254_TimeLord_Maxcomp (info1cup18_maxcomp)C++14
60 / 100
450 ms4444 KiB
#include <bits/stdc++.h> using namespace std; using namespace chrono; #pragma GCC optimize("Ofast") #pragma GCC target("tune=native") #pragma GCC optimize("unroll-loops") typedef long long ll; typedef long double ld; #define fs first #define sc second #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define pii pair<int, int> #define pll pair<ll, ll> #define pb push_back #define maxn 200000 #define BIG 1000000000000000000 mt19937 rnd(42); int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; auto st = steady_clock().now(); vector<vector<int> > a(n, vector<int>(m)); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++) cin >> a[i][j]; } int ans = -1e9; auto en = steady_clock().now(); while(ll(duration_cast<milliseconds>(en - st).count()) < 450){ // cout << ll(duration_cast<milliseconds>(en - st).count()) << "\n"; int bx = abs(int(rnd()))%n; int by = abs(int(rnd()))%m; while(1){ int x = -1, y; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++){ int p = max(a[bx][by], a[i][j]) - min(a[bx][by], a[i][j]) - 1 - abs(i - bx) - abs(by - j); if(p > ans){ x = i; y = j; } ans = max(ans, p); } if(x == -1){ en = steady_clock().now(); break; } bx = x; by = y; // en = steady_clock().now(); } } cout << ans; } /* 2 3 3 4 2 5 7 5 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...