Тема: Abracodabra#
Показать сообщение отдельно
Старый 11.12.2007, 21:39   #1
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Abracodabra#

HELLO,WORLD
Вот несколько дней назад участвовал в олимпиаде по программированию и сейчас, так сказать, провожу разбор полетов:
Вот одна задачка, которую я не решил на олимпиаде:
Задача С Метод бутерброда
Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква -номер 2, вторая - номер 3, предпоследняя - номер 4, потом третья ... и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. В конец зашифрованного слова добавляется знак «диез» (#), который нельзя использовать в сообщениях.
Например, слово «sandwich» зашифруется в «shacnidw#».
Вложение 5292
К сожалению, программист «Super-Secret-no», написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.
Формат входных данных
Вводится слово, зашифрованное методом бутерброда. Длина слова не превышает 20 букв.
Формат выходных данных
Выведите расшифрованное слово. Пример
Вложение 5293
А вот мой вариант решения (неправильный):
uses crt;
var
s:string[21];
s1:string[20];
d:integer;
i1,i2:integer;
begin
clrscr;
readln (s);
d:=length (s);
delete (s,d,1);
i2:=0;
for i1:=1 to d div 2 do begin
s1[i1]:=s[i1];
s1[d-i2]:=s[i1+1];
i2:=i2+1;
end;
for i1:=1 to 20 do begin
write (s1[i1]);
end;
readkey;
end.
Решал на Pascal.
Может кто знает, как решать?
(Offline)
 
Ответить с цитированием