#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 200010;
long long niz[MAXN];
long long niz2[MAXN];
long long niz3[MAXN];
long long n, q;
int binarySearch(long long arr[], long long l, long long r, long long x)
{
    while (l <= r) {
        int m = l + (r - l) / 2;
        if (arr[m] == x)
            return m + 1;
        if (arr[m] < x)
            l = m + 1;
        else
            r = m - 1;
    }
    return -1;
}
int main(){
    scanf("%lld",&n);
    for(int i = 1; i <= n; i++)
        scanf("%lld", &niz[i]);
    scanf("%lld",&q);
    while(q--){
                bool isti1 = true;
    bool isti2 = true;
        long long l, r;
        scanf("%lld %lld", &l, &r);
        for(int i = l; i <= r; i++){
            niz2[i - l + 1] = niz[i];
        }
        sort(niz2 + 1, niz2 + r - l + 2);
        /*for(int i = 1; i <= r - l + 1; i++)
            cout << niz2[i] << " ";
        cout << endl;*/
        long long prvo_nepoklapanje = -1, poslednje_nepoklapanje = -1;
        for(int i = 1; i <= r - l + 1; i++){
            if(niz2[i] != niz[i - 1 + l]){
                prvo_nepoklapanje = i;
                break;
            }
        }
        for(int i = r - l + 1; i >= 1; i--){
            if(niz2[i] != niz[r - (r - l + 1 - i)]){
                poslednje_nepoklapanje = i;
                break;
            }
        }
        //cout << prvo_nepoklapanje << " " << poslednje_nepoklapanje << endl;
        /*cout << binarySearch(niz2, 1, r - l + 1, niz[prvo_nepoklapanje + l - 1]) << endl;
        cout << prvo_nepoklapanje << " " << poslednje_nepoklapanje << endl;
        bool moze = true;
        if(binarySearch(niz2, 1, r - l + 1, niz[prvo_nepoklapanje + l - 1]) > prvo_nepoklapanje){
            for(int i = prvo_nepoklapanje; i <= poslednje_nepoklapanje - 1; i++){
                cout << "poredim niz2[" << i << "] sa niz[" << l + i << "]\n";
                if(niz2[i] != niz[l + i]){
                    moze = false;
                    break;
                }
            }
        }*/
        bool moze = true;
        /*if(niz[prvo_nepoklapanje] > niz[prvo_nepoklapanje + 1]){
            cout  << "tu1" << endl;
            for(int i = prvo_nepoklapanje; i <= poslednje_nepoklapanje - 1; i++){
                cout << "poredim niz2[" << i << "] sa niz[" << l + i << "]\n";
                if(niz2[i] != niz[l + i]){
                    moze = false;
                    break;
                }
            }
        }
        if(niz[prvo_nepoklapanje] <= niz[prvo_nepoklapanje + 1]){
            cout  << "tu2" << endl;
            for(int i = prvo_nepoklapanje + 1; i <= poslednje_nepoklapanje; i++){
                cout << "poredim niz2[" << i << "] sa niz[" << prvo_nepoklapanje + l - 1 + i - (prvo_nepoklapanje + 1) << "]\n";
                if(niz2[i] != niz[prvo_nepoklapanje + l - 1 + i - (prvo_nepoklapanje + 1)]){
                    moze = false;
                    break;
                }
            }
        }*/
        for(int i = 1; i <= r - l + 1; i++){
            niz3[i] = niz[i + l - 1];
        }
        for(int i = prvo_nepoklapanje; i <= poslednje_nepoklapanje; i++){
            niz3[i] = niz[i + l];
        }
        niz3[poslednje_nepoklapanje] = niz[prvo_nepoklapanje + l - 1];
        /*cout << endl << endl;
        for(int i = 1; i <= r - l + 1; i++)
            cout << niz3[i] << " ";
        cout << endl << endl;*/
        for(int i = 1; i <= r - l + 1; i++){
            if(niz2[i] != niz3[i])
                isti1 = false;
        }


        for(int i = 1; i <= r - l + 1; i++){
            niz3[i] = niz[i + l - 1];
        }
        for(int i = prvo_nepoklapanje + 1; i <= poslednje_nepoklapanje; i++){
            niz3[i] = niz[i + l - 2];
        }
        niz3[prvo_nepoklapanje] = niz[poslednje_nepoklapanje + l - 1];
        /*cout << endl << endl;
        for(int i = 1; i <= r - l + 1; i++)
            cout << niz3[i] << " ";
        cout << endl << endl;*/
        for(int i = 1; i <= r - l + 1; i++){
            if(niz2[i] != niz3[i])
                isti2 = false;
        }
        if(isti1 || isti2 || (prvo_nepoklapanje == -1 && poslednje_nepoklapanje == -1))
            printf("DA\n");
        else
            printf("NE\n");
    }
    return 0;
}