C#. Пример работы на изображении. (Входные данные отличаются)
using System;
using System.Collections.Generic;
using System.Linq;
namespace NSymbs
{
class Program
{
static void Main(string[] args)
{
string input;
input = Console.ReadLine();
int[] param = input.Split("\t ".ToCharArray()).Select(x => int.Parse(x)).ToArray();
input = Console.ReadLine();
int z = input.Length / param[1];
List<string> bufer = new List<string>();
for (int i = 0; i < z; ++i)
bufer.Add(input.Substring(i*param[1], param[1]));
Console.WriteLine(bufer.Distinct().Count());
}
}
}
Сравнивать что-то можно лишь тогда, когда сравниваемое находится в одинаковых единицах измерения. Нам даны объемы в Кбайт, Мбайт, Тбайт, байт, бит.
Вспоминаем соотношения.
1 байт = 8 бит.
1 Кбайт = 1024 байт
1 Мбайт = 1024 Кбайт = 1024² байт
1 Гбайт = 1024 Мбайт = 1024³ байт
1 Тбайт = 1024 Гбайт = 1024⁴ байт.
Теперь винчестеры.
(1): 600 Кбайт = 600×·1024 байт
(5): 3 Мбайт = 3×1024² байт
(3): 1 Тбайт = 1024⁴ байт
(2): 10 Мбайт + 200 байт = 1024³ + 200 байт
(6): 400 бит = 400/8 = 50 байт
(4): 50 байт × 2 = 100 байт
Объемы по возрастанию:
50 байт, 100 байт, 600×1024 байт, 3×1024² байт, 1024³ + 200 байт, 1024⁴ байт.
Соответственно, номера винчестеров 6, 4, 1, 5, 2, 3