using System;
using System.Collections.Generic;

namespace Nikola_Tosic
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            List<int> poceci = new List<int>();
            int[] niz = new int[N];
            string[] s1 = Console.ReadLine().Split(' ');
            niz[0] = int.Parse(s1[0]);
            poceci.Add(1);
            int p = 0;
            for(int i = 1; i < N ; i++)
            {
                niz[i] = int.Parse(s1[i]);
                if (niz[i] < niz[i - 1])
                {
                    p = poceci[poceci.Count - 1];
                    for(int j = 0; j < i - p; j++)
                        poceci.Add(p);
                    poceci.Add(i + 1);
                }
            }
            p = poceci[poceci.Count - 1];
            for (int j = 0; j < N - p; j++)
                poceci.Add(p);
            
            int Q = int.Parse(Console.ReadLine());
            int brojDelovaNiza = 0;
            int tragac = 0;
            int mestoDeljenja = 0;
            bool daLiJe = false;
            for (int i = 0; i < Q; i++)
            {
                string[] s = Console.ReadLine().Split(' ');
                int l = int.Parse(s[0]);
                int r = int.Parse(s[1]);

                tragac = r - 1;
                tragac = poceci[tragac] - 1;
                brojDelovaNiza = 1;
                mestoDeljenja = tragac - 1;
                if (mestoDeljenja >= 0)
                {
                    while (tragac >= l - 1)
                    {
                        if (poceci[tragac] == tragac + 1)
                        {
                            tragac--;
                            if (tragac >= l - 1)
                            {
                                brojDelovaNiza++;
                            }
                        }
                        else
                        {
                            tragac = poceci[tragac] - 1;
                        }
                        if (brojDelovaNiza >= 3)
                            break;
                    }

                    daLiJe = false;
                    if (brojDelovaNiza == 3)
                        Console.WriteLine("NE");
                    else if (brojDelovaNiza == 1)
                        Console.WriteLine("DA");
                    else
                    {
                        if (mestoDeljenja - 1 >= l - 1)
                        {
                            if (poceci[mestoDeljenja - 1] <= poceci[mestoDeljenja + 1])
                                daLiJe= true;
                        }
                        else if(mestoDeljenja - 1 < l - 1)
                            daLiJe= true;
                        if (mestoDeljenja + 2 <= r - 1)
                        {
                            if (poceci[mestoDeljenja] <= poceci[mestoDeljenja + 2])
                                daLiJe = true;
                        }
                        else if(mestoDeljenja + 2 > r - 1)
                            daLiJe= true;
                        if (daLiJe)
                            Console.WriteLine("DA");
                        else
                            Console.WriteLine("NE");
                    }
                }
                else
                {
                    Console.WriteLine("DA");
                }
            }
        }
    }
}