Direct-I intern

Someone please help

Consider an infinite binary tree defined as follows.
for a node labelled v its left child will be labelled 2*v and its right child will be labelled 2*v+1. The root is labelled as 1.
You are given n ranges [a1, b1], [a2, b2], ..... [an, bn]. ai <= bi for all i. 
Each range [ai,bi] denotes a set of all integers from ai to bi. For instance [5,9] represents the set {5,6,7,8,9}.
You are also given an integer T. 
Let S be a set representing the union of all the given ranges.
You have to find the number of pairs (x,y) such that the lca(x,y) is T where x is any element from S and y is any element from S and x != y.
lca is the least common ancestor of the nodes labelled x and y. Refer exact definition.
You are given two arrays A and B. (A[i], B[i]) denote a set represented by the range. If you select C language you will have two more variables A_len and B_len denoting the lengths of respective arrays.
You are given an integer T.
Write to stdout (print to the screen) the count of the pairs whose lca is T.
1 <= length(A) = length(