ibswoklol1362
?>

Популярная песня Имя входного файла: input.txt Имя выходного файла: output.txt Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт В Диманово по радио круглые сутки крутят новый хит. А Роме, как математику, очень интересно, почему какие-то песни становятся популярными, а какие-то нет. Для простоты Роман представил ноты цифрами от 1 до 7 и записал мелодию как строку, состоящую только из этих цифр. Проанализировав хит-парад за последние несколько лет, он определил, что некоторые фрагменты мелодий положительно влияют на популярность песен, а некоторые — отрицательно. Фрагментом Рома называет несколько подряд идущих нот в упрощенной записи. Заметим, что в одной и той же песне несколько фрагментов могут пересекаться. Собрав такую информацию, Рома планирует открыть новое направление в анализе данных: он хочет предсказывать, будет ли новая песня популярной у слушателей. Однако вручную проверять каждую песню очень долго, и он просит вас написать для этого программу. Формат входных данных Первая строка входного файла содержит упрощенную запись песни, которая состоит из N цифр от 1 до 7 (1 ⩽ N ⩽ 2 · 105 Во второй строке входного файла содержится число M — количество фрагментов, вхождение которых в песню необходимо проверить (1 ⩽ M ⩽ 105 ). В следующих M строках заданы сами фрагменты мелодий Ai и их вклад в популярность песни Bi (1 ⩽ i ⩽ M, |Bi | ⩽ 105 ). Каждый фрагмент задается строкой не более чем из 20 символов, состоящей только из цифр от 1 до 7. Формат выходных данных ответ должен содержать одно целое число — итоговое значение популярности песни

Информатика

Ответы

dmitrymakarov003
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20
Дмитрий74
//PascalABC.NET 3.2 сборка 1318

//Вариант по формуле Бине

Var
  n,fibn:real;
  i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
  i:=0;
    while fibn<n do
      begin
        fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
        inc(i);
      end;
   writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
     end;
 end.

//В лоб

Var
  sum,n,buf,fib0,fib1:integer;
 
 function fibb(fib0,fib1:integer):integer;
  begin
    result:=fib0+fib1;
  end;

begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
   writeln('Не существует чисел Фиббоначи меньше 0')
else
  begin
    if fibb(fib0,fib1)>=n then sum:=0 else
    begin
      while fibb(fib0,fib1)<n do
        begin
         buf:=fib1;
         fib1:=fibb(fib0,fib1);
         fib0:=buf;
        end;
      sum:=fibb(fib1,fibb(fib0,fib1))-1;
   end;
   writeln(sum);
  end;
end.

Пример ввода:
12
Пример вывода:
20

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Популярная песня Имя входного файла: input.txt Имя выходного файла: output.txt Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт В Диманово по радио круглые сутки крутят новый хит. А Роме, как математику, очень интересно, почему какие-то песни становятся популярными, а какие-то нет. Для простоты Роман представил ноты цифрами от 1 до 7 и записал мелодию как строку, состоящую только из этих цифр. Проанализировав хит-парад за последние несколько лет, он определил, что некоторые фрагменты мелодий положительно влияют на популярность песен, а некоторые — отрицательно. Фрагментом Рома называет несколько подряд идущих нот в упрощенной записи. Заметим, что в одной и той же песне несколько фрагментов могут пересекаться. Собрав такую информацию, Рома планирует открыть новое направление в анализе данных: он хочет предсказывать, будет ли новая песня популярной у слушателей. Однако вручную проверять каждую песню очень долго, и он просит вас написать для этого программу. Формат входных данных Первая строка входного файла содержит упрощенную запись песни, которая состоит из N цифр от 1 до 7 (1 ⩽ N ⩽ 2 · 105 Во второй строке входного файла содержится число M — количество фрагментов, вхождение которых в песню необходимо проверить (1 ⩽ M ⩽ 105 ). В следующих M строках заданы сами фрагменты мелодий Ai и их вклад в популярность песни Bi (1 ⩽ i ⩽ M, |Bi | ⩽ 105 ). Каждый фрагмент задается строкой не более чем из 20 символов, состоящей только из цифр от 1 до 7. Формат выходных данных ответ должен содержать одно целое число — итоговое значение популярности песни
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

mishink535
Vyacheslavovich-Gubanov
ylia89
zaravshan20134
Илья_Ветклиники1655
Два в какой степени будет число 16777216
mtcover
srkushaev
Koshovkina1721
annashaykhattarova1
Константин Андрей
Mikhail579
ananyananar
Романенко
uzunanna19922488
vasiliyglukhov