#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 998244353
#define POT 4194304
#define INF 1000000019
#define INFL 1000000000000000099LL
ll n,q,a,b,c,d;
vector<pair<pair<ll,ll>,ll>>v;//przexial ,wys
ll co[2007][2007];
ll ans[2007][2007];
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n;
for(ll i=0;i<n;i++){
cin>>a>>b>>c;
v.pb({{b,c},a});
}
if(n<=2000){
for(ll i=0;i<n;i++){
for(ll j=0;j<n;j++){
if(v[i].ff.ff<=abs(i-j) && abs(i-j)<=v[i].ff.ss && v[j].ff.ff<=abs(i-j) && abs(i-j)<=v[j].ff.ss){
co[i][j]=abs(v[i].ss-v[j].ss);
}
else{
co[i][j]=-1;
}
}
}
for(ll i=0;i<2007;i++){
for(ll j=0;j<2007;j++)
ans[i][j]=-1;
}
for(ll j=1;j<n;j++){
for(ll i=0;j+i<n;i++){
ans[i][i+j]=max(max(ans[i+1][i+j],ans[i][j+i-1]),co[i][i+j]);
}
}
cin>>q;
// cout<<ans[2][4]<<"\n";
for(ll i=0;i<q;i++){
cin>>a>>b;
a--;
b--;
cout<<ans[a][b]<<"\n";
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |