Константин уезжает на каникулы к бабушке в деревню, интернет там не работает. однако в свободное время он хотел почитать документацию на некоторые библиотеки python. проблема в том, что документация к библиотекам написана в формате markdown и в обычном офисном пакете не открывается нормально. константину и напишите функцию markdown_to_docx(text), которая принимает текст, содержащий на первой строке название документа, а потом – несколько строк с содержимым документа в формате markdown, создаёт документ и сохраняет его в файле res.docx. в этот раз нам немного повезло, и документация может содержать только следующие элементы: заголовки уровней 1-6; одноуровневые (то есть не содержащие вложенных) нумерованные и ненумерованные списки; абзацы обычного, наклонного, жирного и наклонно-жирного текста. стиль распространяется на весь абзац. вложенного оформления не бывает. на пустые строки markdown пустые строки в документе. формат ввода строка с названием документа, а затем его содержание на нескольких строках в формате markdown в параметре text. пример файла. формат вывода сохранённый на диске в директории с программой файл res.docx со сконвертированным содержимым. пример файла.
Давай считать.
У Тани канал быстрее, поэтому она в любом случае скачает файл раньше. Тем не менее перед тем, как его начнет у нее скачивать Дима, Таня потратит 1024 Кбайт / 220 бит = 1024 * 1024 байт / 220 бит = 1024 * 1024 *8 бит / 220 бит = 38130 секунд.
По истечение этого времени файл сможет начать качать Дима со скоростью 213 бит в секунду. На скачивание 9 Мб = 9216 Кб = 9437184 байт = 75497472 бит ему понадобится 75497472/213 = 354449 секунды.
Добавляем время, пока ждали Таню: 354449+38130 = 392578 сек
Это, если что, 4.5 дня, так что либо задача глупая, либо цифры неправильные.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KekTus
{
class Program
{
static void PrintArr(int[][] arr)
{
foreach (var str in arr)
{
foreach (var el in str)
Console.Write($"{el}\t");
Console.WriteLine();
}
}
static void Main(string[] args)
{
int M;
int N;
try
{
Console.Write("M = "); M = int.Parse(Console.ReadLine());
Console.Write("N = "); N = int.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Ошибка ввода");
return;
}
if (N < 0 || M < 0)
{
Console.WriteLine("Ошбка ввода");
return;
}
int[][] Arr = new int[M][];
var rand = new Random();
for(int i = 0; i < M; ++i)
{
Arr[i] = new int[N];
for (int j = 0; j < N; ++j)
Arr[i][j] = rand.Next(10,99);
}
Console.WriteLine("Исходный массив:");
PrintArr(Arr);
Console.WriteLine();
int[][] Buffer = new int[N][];
for (int j = 0; j < N; ++j)
Buffer[j] = new int[M];
for (int i = 0; i < M; ++i)
for (int j = 0; j < N; ++j)
Buffer[j][i] = Arr[i][j];
Arr = Buffer;
Console.WriteLine("Преобразованный:");
PrintArr(Arr);
Console.WriteLine();
}
}
}