Problem source: https://www.hackerrank.com/challenges/cut-the-sticks

You are given N sticks, where the *length* of each stick is a positive integer. A *cut operation* is performed on the sticks such that all of them are reduced by the length of the smallest stick.

Suppose we have six sticks of the following lengths:

```
5 4 4 2 2 8
```

Then, in one *cut operation* we make a cut of length *2* from each of the six sticks. For the next *cut operation* four sticks are left (of non-zero length), whose lengths are the following:

```
3 2 2 6
```

The above step is repeated until no sticks are left.

Given the length of N sticks, print the number of sticks that are cut in subsequent *cut operations*.

*Note:* For each *cut operation*, you have to recalcuate the length of smallest sticks (excluding zero-length sticks).

**Input Format**

The first line contains a single integer N.

The next line contains N integers: *a _{0}, a_{1},…a_{N-1}* separated by space, where

*a*represents the length of

_{i}*i*stick.

^{th}**Output Format**

For each operation, print the number of sticks that are cut, on separate lines.

**Constraints**

1 ≤ *N* ≤ 1000

1 ≤ *a _{i}* ≤ 1000

**Sample Input #00**

```
6
5 4 4 2 2 8
```

**Sample Output #00**

```
6
4
2
1
```

**Sample Input #01**

```
8
1 2 3 4 3 3 2 1
```

**Sample Output #01**

```
8
6
4
1
```

class Cut_The_Stick

{

static void Main(string[] args)

{

int noOfSticks = Convert.ToInt32(Console.ReadLine());

string strInput = Console.ReadLine();

List<int> list = new List<int>();

int min = 0;

list.AddRange(strInput.Split(‘ ‘).Select(x => Convert.ToInt32(x)));while (list.Count() > 0)

{

Console.WriteLine(list.Count());

min = list.Min();

list = list.Select(x => x – min).Where(x => x > 0).ToList();

}

Console.ReadKey();

}

}