## The Problem:

My friend Albi is a teacher. At the beginning of each lesson, her students form a line and enter the class one by one. As they enter, each student shakes her hand. Albi enters the students’ names in a list in the order in which they enter the classroom. After work, she analyzes the list to get a hint of the connections and relationships in the class.

Albi has a hunch that the ages of the students can tell her a lot. She has a list of the ages of her `students`

in the order they entered the classroom, and she wants to calculate the number of pairs of students such that their age difference is exactly `1`

, and the youngest student in the pair entered before the oldest. Please help my friend!

**Example**

- For
`students = [2, 4, 3, 4, 6]`

, the output should be

`studentsAge(students) = 2`

.There are two pairs of students Albi would be interested in:

`(2, 3)`

and`(3, 4)`

. - For
`students = [5, 4, 9, 10]`

, the output should be

`studentsAge(students) = 1`

.The only interesting pair of students in

`(9, 10)`

.

**Input/Output**

**[time limit] 4000ms (py)**

**[input] array.integer students**The ages of the students in the order they entered the classroom.

*Guaranteed constraints:*

`1 ≤ students.length ≤ 10`

,^{5}

`0 ≤ students[i] ≤ 10`

.^{5}**[output] integer**An integer with the answer for Albi.

## The Solution:

def studentsAge(s): m=[0]*5**9 c=0 for x in s: c+=m[x-1] m[x]+=1 return c

## The Explanation:

There are multiple ways to solve this problem. Smarter way is to use a dictionary and store how many times each element is seen. However, to achieve the shortest solution (62 character in Python), we need a less efficient approach. Instead of a dictionary, create an array of size 10^5 and use this array to count each element.

For each element x in array, we need how many times x-1 is seen before that. So, for each element, we sum up this number and return it. The reason the array is initialized with length 5^9 is to decrease 1 character from 10^6.