N = gets.to_i A = gets.split.map(&:to_i) INC = Array.new(N, &:itself) DEC = Array.new(N, &:itself) N.times.inject(-1) do |r,l| INC[l] = ( l <= r ? r : (l ... N).find{|r_| (r_ + 1 >= N || A[r_ + 1] < A[r_]) } ) end N.times.inject(-1) do |r,l| DEC[l] = ( l <= r ? r : (l ... N).find{|r_| (r_ + 1 >= N || A[r_ + 1] > A[r_]) } ) end Q = gets.to_i ANS = Q.times.map do l,r = gets.split.map(&:to_i) "#{r <= INC[l] ? 1 : 0} #{r <= DEC[l] ? 1 : 0}" end puts ANS