// pascalabc.net 3.2, сборка 1383 от 09.02.2017 // внимание! если программа не работает, обновите версию! 1) begin var b: =arrrandom(readinteger('n=',99); b.println; var jn: =b.findindex(x-> x< 0); // индекс первого отрицательного var jm: =b.indexmax; // индекс первого максимального swap(b[jn],b[jm]); b.println end. пример n= 15 33 60 -72 13 -15 -36 21 98 -21 -22 56 -20 0 -98 28 33 60 98 13 -15 -36 21 -72 -21 -22 56 -20 0 -98 28 2) begin var a: =arrrandom(readinteger('n=',99); a.println; a: =a[: 4]+arr(8)+a[4: ]; a.println; end. пример n= 10 65 56 31 74 -4 -54 43 8 -58 -94 65 56 31 74 8 -4 -54 43 8 -58 -94
ldfenix87
14.10.2022
Будем последовательно решать для первых i символов кода, основываясь на ответах для i - 1 и i - 2. заметим, что если i-й символ кода равен 0 или ответа для i - 1 не существует, то ответ для i получается добавлением одного символа к ответу для i - 2, если последние две цифры кода нельзя понять, как зашифрованную букву, или ответа для i - 2 не существует, то надо добавить символ к i - 1, а иначе сравнить длины ответов и добавить букву к тому, кто короче. код (python 3.5): codes = ".zyxwvutsrqponmlkjihgfedcba" with open('input.txt', 'r') as f: encoded = list(map(int,list(f. 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])