// PascalABC.NET 3.2, сборка 1427 от 24.04.2017 // Внимание! Если программа не работает, обновите версию!
begin var s1:=SeqRandom(ReadInteger('n1='),-50,50); var s2:=SeqRandom(ReadInteger('n2='),-50,50); var p:=ReadInteger('0-по неубыванию, иное- по невозрастанию:'); var q1:=new Queue<integer>; foreach var m in s1 do q1.Enqueue(m); Write('Очередь 1: ',q1); Writeln; var q2:=new Queue<integer>; foreach var m in s2 do q2.Enqueue(m); Write('Очередь 2: ',q2); Writeln; // очереди сформированы var q:=new Queue<integer>; var a:=(q1.ToArray+q2.ToArray); var s:sequence of integer; if p=0 then s:=a.OrderBy(i->i) else s:=a.OrderByDescending(i->i).ToArray; foreach var m in s do q.Enqueue(m); Write('Очередь-результат: ',q); Writeln; end.
Пример n1= 10 n2= 7 0-по неубыванию, иное- по невозрастанию: 1 Очередь 1: [-26,6,26,-48,-21,-29,27,-39,5,-40] Очередь 2: [50,36,37,46,18,41,-39] Очередь-результат: [50,46,41,37,36,27,26,18,6,5,-21,-26,-29,-39,-39,-40,-48]
Будем последовательно решать задачу для первых i символов кода, основываясь на ответах для i - 1 и i - 2. Заметим, что если i-й символ кода равен 0 или ответа для i - 1 не существует, то ответ для i получается добавлением одного символа к ответу для i - 2, если последние две цифры кода нельзя понять, как зашифрованную букву, или ответа для i - 2 не существует, то надо добавить символ к i - 1, а иначе сравнить длины ответов и добавить букву к тому, кто короче.
Код (python 3.5): codes = "." with open('input.txt', 'r') as f: encoded = list(map(int,list(f.read( if len(encoded) == 1: print(codes[encoded[0]]) else: decoded = [codes[encoded[0]], ""] for i in range(1, len(encoded)): if (decoded[0] is None) or (encoded[i] == 0): decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]] elif (10*encoded[i-1] + encoded[i]>26) or (decoded[1] is None) or \ (len(decoded[1]) >= len(decoded[0])): decoded = [decoded[0] + codes[encoded[i]], decoded[0]] else: decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]] with open('output.txt', 'w') as f: f.write(decoded[0])
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку