using System;
namespace ConsoleApp4
{
    internal class Program
    {
        static void Main(string[] args)
        {


            int n = int.Parse(Console.ReadLine());
            string[] unos = Console.ReadLine().Split();
            int q = int.Parse(Console.ReadLine());
            int pocetak1, kraj1;
            int[] niz = new int[n];
            int br1 = 0;
            int br2 = 0;
            for (int i = 0; i < n; i++)
            {
                niz[i] = int.Parse(unos[i]);
                if (niz[i] == 1) br1++;
                if (niz[i] == 2) br2++;
            }
            if (br1 + br2 == n)
            {
                int[] nizgresaka = new int[n];
                nizgresaka[0] = 0;
                for (int i = 1; i < n; i++)
                {
                    nizgresaka[i] = nizgresaka[i - 1];
                    if (niz[i] < niz[i - 1]) nizgresaka[i]++;
                }
                unos = Console.ReadLine().Split();
                while (q > 0)
                {
                    pocetak1 = int.Parse(unos[0]) - 1;
                    kraj1 = int.Parse(unos[1]) - 1;
                    if (nizgresaka[kraj1] - nizgresaka[pocetak1] > 1)
                    {
                        Console.WriteLine("NE");

                    }
                    else Console.WriteLine("DA");
                    q--;
                    unos = Console.ReadLine().Split();
                }
            }
            else
            {


                int p;
                bool provera;
                bool izbrisao;
                unos = Console.ReadLine().Split();
                while (q > 0)
                {
                    pocetak1 = int.Parse(unos[0]) - 1;
                    kraj1 = int.Parse(unos[1]) - 1;

                    provera = true;
                    izbrisao = false;
                    p = niz[pocetak1];
                    if ((kraj1 - pocetak1 > 1) && (p > niz[pocetak1 + 1]) && (p > niz[pocetak1 + 2]))
                    {
                        p = niz[pocetak1 + 1];
                        pocetak1++;
                        izbrisao = true;
                    }

                    for (int i = pocetak1; i <= kraj1; i++)
                    {


                        if (niz[i] < p && izbrisao == false && i < kraj1)
                        {
                            izbrisao = true;
                            if (p > niz[i + 1]) p = niz[i];

                        }


                        else if ((niz[i] < p && izbrisao == true))
                        {
                            provera = false;
                            break;
                        }
                        else p = niz[i];

                    }
                    if (provera) Console.WriteLine("DA");
                    else Console.WriteLine("NE");
                    q--;
                    unos = Console.ReadLine().Split();
                }
            }
        }
    }
}