Submission #1170003

#TimeUsernameProblemLanguageResultExecution timeMemory
1170003aentrenusTwo Antennas (JOI19_antennas)C++20
2 / 100
3092 ms2372 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using vi = vector<int>;
using vl = vector<ll>;
using vb = vector<bool>;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using str = string;
#define all(a) a.begin(), a.end()
#define print(a) for (auto elem:a) cout<<elem<<' '; cout<<'\n'
#define segprep(b) resize(1<<((int)ceil(log2(b.size()))+1))
#define FOR(a) for (int _ = 0; _ < a; _++)

struct antenna{
    int h, a, b;
};

int n;
vector<antenna> ants;

int ans_range(const int &l, const int &r){
    int best = -1;
    for (int i = l; i < r; i++){
        for (int j = max(l, i-ants.at(i).b); j <= i-ants.at(i).a; j++){
            if ((j+ants.at(j).a <= i) && (i <= j+ants.at(j).b)){
                best = max(best, abs(ants.at(i).h-ants.at(j).h));
            }
        }
        for (int j = i+ants.at(i).a; j <= min(r-1, i+ants.at(i).b); j++){
            if ((j-ants.at(j).a >= i) && (i >= j-ants.at(j).b)){
                best = max(best, abs(ants.at(i).h-ants.at(j).h));
            }
        }
    }
    return best;
}

void solve1(){
    int q;
    cin>>q;
    int l, r;
    while(q--){
        cin>>l>>r;
        cout<<ans_range(l-1, r)<<'\n';
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    cin>>n;
    ants.resize(n);
    for (auto &[h, a, b]:ants){
        cin>>h>>a>>b;
    }

    solve1();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...