Submission #1170099

#TimeUsernameProblemLanguageResultExecution timeMemory
11700994QT0RTwo Antennas (JOI19_antennas)C++20
13 / 100
261 ms589824 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> dp; int n; vector<int> h; vector<pair<int,int>> zas; vector<set<int>> into; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; h.resize(n); zas.resize(n); into.resize(n); dp.resize(n,vector<int>(n,-1)); for (int i = 0; i<n; i++){ cin >> h[i] >> zas[i].first >> zas[i].second; for (int j = i+zas[i].first; j<n && j-i<=zas[i].second; j++){ into[j].insert(i); } } for (int i = 1; i<n; i++){ for (int j = i-1; j>=0; j--)dp[j][i]=dp[j][i-1]; for (int j = i-1; j>=0; j--){ auto it=into[i].find(j); if (it!=into[i].end() && (i-j>=zas[i].first) && (i-j<=zas[i].second)){ dp[j][i]=max(dp[j][i],abs(h[i]-h[j])); } dp[j][i]=max(dp[j][i],dp[j+1][i]); } } int q; cin >> q; while(q--){ int a,b; cin >> a >> b; a--; b--; cout << dp[a][b] << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...