Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com

Hills and Soldier

Moderate
0/80
Average time to solve is 30m
profile
Contributed by
10 upvotes

Problem statement

In old times when there was no direct communication channel present, for the security of kingdoms and to convey the danger to the kingdom the soldier used to fire light torches on the hills, and the soldier on other hills could watch those light torches and used to get the message.

A soldier can watch the torch of another hill if there is no hill between them that is higher than any of the two hills.

You are given an array of size ‘N’ representing the heights of the hill in order by the name ‘HILLS’ and you have to tell the number of pairs of soldiers who can see the torch of each other.

For a pair, (a, b) is same as (b, a).

Example:
Input: ‘N’ = 4, ‘HILLS’ = [3, 2, 1, 3]
Output: 5
If we consider the indices from 0 to 3 then the pairs are (0, 1), (0,3), (1, 2), (1,3), and (2, 3).
The soldier at hill 0 can not see hill 2 as hill[1]>hill[2].

Note : Test cases are made in such a way that the answer will fit in 32-bit integer.

Detailed explanation ( Input/output format, Notes, Images )
Constraints :
1 <= T <= 10
1 <= N <= 10^5
1 <= HILLS[i] <= 10^9

Time Limit: 1 sec
Sample Input 1 :
2
4
3 2 1 3
5
1 2 3 4 5 
Sample Output 1 :
5
4
Explanation Of Sample Input 1 :
For the first test case:-
If we consider the indices from 0 to 3 then the pairs are (0, 1), (0,3), (1, 2), (1,3), and (2, 3).
The soldier at hill 0 can not see hill 2 as hill[1]>hill[2].

For the second test case:-
Only consecutive hill soldiers can see each other for others there is a higher hill in between them.
Sample Input 2 :
2
5
3 2 1 3 5
6
2 2 1 3 4 6 
Sample Output 2 :
7
7
Full screen
Console