Submission #895497

#TimeUsernameProblemLanguageResultExecution timeMemory
895497kh0iTwo Antennas (JOI19_antennas)C++17
13 / 100
50 ms22612 KiB
#include "bits/stdc++.h" using namespace std; using ll = long long; const int N = 2e5 + 3; int n, q; int h[N], a[N], b[N], l[N], r[N]; namespace Sub12{ bool valid_input(){ return n <= 2000; } int f[2003][2003]; int calc(int i, int j){ int d = abs(j - i); if(d < a[i] or d > b[i] or d < a[j] or d > b[j]) return -1; return abs(h[i] - h[j]); } void solve(){ for(int i = 1; i <= n; ++i) f[i][i] = -1; for(int len = 2; len <= n; ++len) for(int l = 1, r = len; r <= n; ++l, ++r) f[l][r] = max(max(f[l + 1][r], f[l][r - 1]), calc(l, r)); for(int i = 1; i <= q; ++i) cout << f[l[i]][r[i]] << '\n'; } } signed main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n; for(int i = 1; i <= n; ++i) cin >> h[i] >> a[i] >> b[i]; cin >> q; for(int i = 1; i <= q; ++i) cin >> l[i] >> r[i]; if(Sub12::valid_input()) Sub12::solve(); 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...