Problem:
度数分布

健康診断で生徒の身長を計測しました。身長のデータを入力とし、度数分布を作成して出力するプログラムを作成してください。度数分布の階級は 5 cm 刻みの 6 つの階級とし、度数は人数を *（半角アスタリスク）で表示します。ただし、その階級の度数（人数）が 0 の場合、階級の見出しのみを出力してください。

Input

入力は以下の形式で与えられます。

n
h1
h2
:
hn

1 行目に生徒の数 n (1 ≤ n ≤ 40)、2 行目以降に i 人目の身長を表す実数 hi (150.0 ≤ hi ≤ 190.0、小数第 1 位まで) がそれぞれ 1 行に与えられます。

Output

以下の形式で度数分布を表示してください。

1 行目 見出し「1:」につづいて 165.0 cm 未満の人数分の *
2 行目 見出し「2:」につづいて 165.0 cm 以上〜 170.0 cm未満の人数分の *
3 行目 見出し「3:」につづいて 170.0 cm 以上〜 175.0 cm未満の人数分の *
4 行目 見出し「4:」につづいて 175.0 cm 以上〜 180.0 cm未満の人数分の *
5 行目 見出し「5:」につづいて 180.0 cm 以上〜 185.0 cm未満の人数分の *
6 行目 見出し「6:」につづいて 185.0 cm 以上の人数分の *

Sample Input 1

4
180.3
168.2
165.5
175.3

Output for the Sample Input 1

1:
2:**
3:
4:*
5:*
6:

Sample Input 2

21
179.4
171.5
156.6
173.0
169.4
181.2
172.4
170.0
163.6
165.9
173.5
168.2
162.5
172.0
175.1
172.3
167.5
175.9
186.2
168.0
178.6

Output for the Sample Input 2

1:***
2:*****
3:*******
4:****
5:*
6:*

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            List<decimal> length = new List<decimal>();
            for (int i = 0; i < n; i++)
            {
                length.Add(decimal.Parse(Console.ReadLine()));
            }

            for (int j = 1; j <= 6; j++)
            {
                Console.Write("{0}:", j);
                if (j == 1)
                    WriteCome(length.Where(s => s < 165).Count());
                else if (j == 6)
                    WriteCome(length.Where(s => s >= 185).Count());
                else
                    WriteCome(length.Where(s => 155 + j * 5 <= s && s < 160 + j * 5).Count());
            }

        }

        static void WriteCome(int count)
        {
            for (int i = 0; i < count; i++)
            {
                Console.Write("*");
            }
            Console.WriteLine();

        }
    }
}