


Given students' ratings : [5, 8, 1, 5, 9, 4].
He gives the students candy in the following minimal amounts : [1, 2, 1, 2, 3, 1]. He must buy a minimum of 10 candies.
1. If two students having the same grade are standing next to each other, they may receive the same number of candies.
2. Every student must get at least a candy.
The first line of input contains an integer 'T' representing the number of the test case. Then the test case follows.
The first line of each test case contains an integer ‘N’ representing the number of students.
The second line of each test case contains 'N' space-separated integers representing the grades of each student.
For each test case, print the minimum number of candies required.
You don't need to print anything. It has already been taken care of. Just implement the given function.
1 <= T <= 10^2
1 <= N <= 10^4
1 <= STUDENTS[i] <= 10^5
Time Limit : 1 sec
There can be four cases :
CASE 1: STUDENTS[i - 1] > STUDENTS[i] < STUDENTS[i + 1]
CASE 2: STUDENTS[i - 1] < STUDENTS[i] < STUDENTS[i + 1]
CASE 3: STUDENTS[i - 1] > STUDENTS[i] > STUDENTS[i + 1]
CASE 4: STUDENTS[i - 1] < STUDENTS[i] > STUDENTS[i + 1]
Here is the algorithm :
We can iterate through the array of scores of student and assign a value of candy to each student depending upon his score. If his score is greater than the previous student in line, he will get a candy more than the previous student. Same goes for the student next in line.
Here is the algorithm :