# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1255373 | quocbaoo | Two Antennas (JOI19_antennas) | C++20 | 57 ms | 17740 KiB |
#include<bits/stdc++.h>
#define fi first
#define se second
#define ll long long
using namespace std;
const int N=2e5;
int n,q,h[N+5],a[N+5],b[N+5];
namespace sub1{
void xuly(){
for (int i=1;i<=q;i++){
int l,r;cin>>l>>r;
int ma=-1;
for (int j=l;j<=r;j++){
for (int k=l;k<=r;k++){
if (a[j]<=abs(j-k)&&abs(j-k)<=b[j]){
if (a[k]<=abs(j-k)&&abs(j-k)<=b[k])
ma=max(ma,abs(h[j]-h[k]));
}
}
}
cout<<ma<<'\n';
}
}
}
namespace sub2{
int dp[2005][2005];
void xuly(){
memset(dp,-1,sizeof(dp));
for (int i=1;i<=n;i++){
for (int j=i+1;j<=n;j++){
if (a[j]<=abs(i-j)&&abs(j-i)<=b[j]){
if (a[i]<=abs(j-i)&&abs(j-i)<=b[i])
dp[i][j]=abs(h[j]-h[i]);
}
}
}
for (int len=2;len<=n;len++){
for (int i=1;i<=n-len+1;i++){
int j=i+len-1;
dp[i][j]=max(dp[i][j],max(dp[i+1][j],dp[i][j-1]));
}
}
for (int i=1;i<=q;i++){
int l,r;cin>>l>>r;
cout<<dp[l][r]<<'\n';
}
}
}
int main(){
if (fopen("atten.inp","r")){
freopen("atten.inp","r",stdin);
freopen("atten.out","w",stdout);
}
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for (int i=1;i<=n;i++) cin>>h[i]>>a[i]>>b[i];
cin>>q;
if (n<=300&&q<=300) return sub1::xuly(),0;
if (n<=2000) return sub2::xuly(),0;
// full::xuly();
}
Compilation message (stderr)
# | 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... |