using System;

class Program
{
    static int[] UNiz()
    {
        string[] input = Console.ReadLine().Split();
        int[] niz = new int[input.Length];
        for(int i = 0; i < niz.Length; i++)
        {
            niz[i] = int.Parse(input[i]);
        }
        return niz;
    }
    static bool ZaPrimer(bool[] prelaz, bool[] izbacivo, int a, int b)
    {
        int brojac = 0;
        if(!prelaz[a])
        {
            brojac++;
        }
        for(int i = a + 1; i < b; i++)
        {
            if (!prelaz[i])
            {
                if(!izbacivo[i])
                {
                    return false;
                }
                brojac++;
                if(brojac > 1)
                {
                    return false;
                }
            }
        }
        return true;
    }
    static string boolToString(bool b)
    {
        if(b)
        {
            return "DA";
        }
        return "NE";
    }
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        int[] niz = UNiz();
        int q = int.Parse(Console.ReadLine());
        int[,] primeri = new int[q, 2];
        for(int i = 0; i < q; i++)
        {
            int[] input = UNiz();
            primeri[i, 0] = input[0];
            primeri[i, 1] = input[1];
        }
        bool[] prelaz = new bool[n - 1];
        bool[] izbacivo = new bool[n];
        
        for(int i = 0; i < n - 1; i++)
        {
            prelaz[i] = niz[i] <= niz[i + 1];
        }
        izbacivo[0] = true;
        izbacivo[n - 1] = true;
        for(int i = 1; i < n - 1; i++)
        {
            izbacivo[i] = niz[i - 1] <= niz[i + 1];
        }
        for(int i = 0; i < q; i++)
        {
            Console.WriteLine(boolToString(ZaPrimer(prelaz, izbacivo, primeri[i, 0] - 1, primeri[i, 1] - 1)));
        }
    }
}