#include <iostream>

using namespace std;
bool funkcija(int a[],int l,int r){
    if(l==r)
        return true;
    if(a[l]>a[r]){//ako je element na prvom mestu veci od onog na poslednjem mora da se obrise ili prvi ili poslednji pa ostatak niza mora da bude sortiran
    for(int i=l+1;i<r-1;i++){
        if(a[i]>a[i+1])
            return false;
    }
    return true;
    }
    else{
        bool pom=true;
        for(int i=l;i<r;i++){
            if(a[i]>a[i+1] && pom==false)
                return false;
        else{
            if(a[i]<a[l] || a[i]>a[r])
                pom=false;
        }
        }
        return true;
    }
}

int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    int q;
    cin>>q;
    bool resenje[q];
    for(int ite=0;ite<q;ite++){
        int x,y;
        cin>>x>>y;
        resenje[ite]=funkcija(a,x-1,y-1);
        if(resenje[ite])
            cout<<"DA"<<endl;
        else
            cout<<"NE"<<endl;
    }
    for(int i=0;i<q;i++)
        if(resenje[i])
            cout<<"DA"<<endl;
    else
        cout<<"NE"<<endl;
    return 0;
}