009. Слово

(Время - 1 сек., память - 16 Мб)

Числа Фибоначчи строятся следующим образом: первые два равны единице, а каждое следующее равно сумме двух предыдущих. Например, первые десять чисел Фибоначчи равны: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. В заданном тексте символы нумеруются слева направо, начиная с единицы.

Требуется написать программу, которая составит слово из символов, номера которых совпадают с числами Фибоначчи.

Входные данные

В единственной строке входного файла input.txt записан текст, состоящий из латинских строчных букв. В тексте не более 30000 символов.

Выходные данные

В единственную строку выходного файла output.txt нужно вывести слово из символов, номера которых совпадают с числами Фибоначчи. Символы слова идут в том же порядке, что и в заданном тексте.

Примеры

input.txt

output.txt

1

a

a

2

abc

abc

3

abcdefghij

abceh

Разбор

Вводим символы из файла, одновременно подсчитывая их номера и числа Фибоначчи. Если номер введенного символа совпадает с очередным числом Фибоначчи, то выводим этот символ.

Программа на Паскале

{Автор программы - А.В.Алексеев,  дата написания - 23.04.2012}

var

  s : char;

  a, b, c, i : integer;

begin

  assign(input,'input.txt'); reset(input);

  assign(output,'output.txt'); rewrite(output);

  a:=1; b:=1; i:=0;

  while not eoln do

  begin

    i:=i+1;

    read(s);

    if i=b then

    begin write(s);

      c:=a+b; a:=b; b:=c

    end

  end

end.

Программа на С

 

Информация о задаче

Автор, источник

 

Олимпиада

Муниципальный этап олимпиады в Ханты-Мансийском АО-Югре, 2007-2008 уч. год, 3-й тур

Тематика

Разбор строк

Примерная сложность

28%

Ссылки в Интернете

Условие, сдача решения – http://acmu.ru/index.asp?main=task&id_task=322

Наш сайт

Сдача решения –

Тесты – Rar

Задача подготовлена

Автор, дата –  Алексеев А.В., 26.04.2012