using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        var dimenzija = int.Parse(Console.ReadLine());
        var niz = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);

        var kriticni = new int[dimenzija];
        List<int> nepotrebni = new List<int>();
        for(int i = 0; i < dimenzija; i++)
        {
            if (i != dimenzija -1 && niz[i] <= niz[i + 1]) kriticni[i] = 0;
            else if (i != dimenzija -1 && i != 0 && niz[i - 1] > niz[i + 1])
            {
                if(i + 2 < dimenzija && niz[i] > niz[i+2])
                    nepotrebni.Add(i);
                kriticni[i] = -1;
            }
            else kriticni[i] = -1;
        }

        var podnizNepotrebnih = new List<int>();
        var brojUpita = int.Parse(Console.ReadLine());
        for (int i = 0; i < brojUpita; i++)
        {
            var tacnost = true;
            var drugiUnos = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            var pocetni = drugiUnos[0] - 1;
            var krajnji = drugiUnos[1] - 2;
                
            if (pocetni == krajnji)
            { Console.WriteLine("DA"); continue; }
            if(pocetni > krajnji)
            { Console.WriteLine("DA"); continue; }

            for (int j = 0; j < nepotrebni.Count; j++)
                if (pocetni < nepotrebni[j] && nepotrebni[j] < krajnji)
                {
                    Console.WriteLine("NE");
                    tacnost = false;
                    break;
                }
                if (!tacnost) continue;

            for (int j = 0; j < podnizNepotrebnih.Count; j++)
            {
                if(pocetni <= podnizNepotrebnih[j] && podnizNepotrebnih[j+1] <= krajnji)
                {
                    Console.WriteLine("NE");
                    tacnost = false;
                    break;
                }
                j++;
            }
            if (!tacnost) continue;

            int konacniZbir = 0;
            for (int j = pocetni; j <= krajnji && konacniZbir != -2; j++)
                konacniZbir += kriticni[j];
            if (konacniZbir == -2)
            {
                Console.WriteLine("NE");
                podnizNepotrebnih.Add(pocetni);
                podnizNepotrebnih.Add(krajnji);
            }
            else Console.WriteLine("DA");
        }
    }
}