1. 50 Пбайт = 50 * 1024 (51200) Тбайт = 51200 * 1024 ^ 4 = примерно 5e+16 (5 и 16 циферок)
2. Если один символ = 1 байт (по ANSI), то 18 байт (тут учитывается пробел, это тоже символ!), у юникода немного другой размер.
3. 11 348 456 / (1024 ^ 3) = 0.0106 Гбайт.
4. 8.5(Гбайт) * (1024 ^ 3 (это байты в одном Гбайте)) / (90 * 70) = 9126805504 / 6300 = 1448699 станиц.
5. 34 * 22 * 12 = 8976 байт = примерно 8.77 Мбайт (опять же, если для ASCII, когда 1 символ = 1 байт)
6. 1024 байт = 1 Мбайт, тогда можно записать 750 / 1 = 750 файлов :)
Требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна N и ni - натуральные числа.
Если K = 1, то всё очевидно - ответ N(N - 1)/2. Пусть K > 1.
Предположим, n1 <= n2 <= ... <= nK - набор чисел, для которых достигается максимум, и n1 > 1. Уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в K-ую компоненту связности. Вычислим, как изменится сумма квадратов:
Поскольку по предположению n1 > 1 (тогда и nK > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. Значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. Выкинем эту компоненту связности, останутся K - 1 компонента связности и N - 1 вершина. Будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине.
Итак, должно выполняться
Подставив в исходную формулу, получаем
Это и есть ответ.