• Вопрос по информатике:

    Задача    Новогодняя елка

    Имя

    файла:

    стандартный ввод

    Имя

    файла:

    стандартный

    Ограничение

    времени:

    1 секунда

    Ограничение

    памяти:

    256 мегабайт

    Приближается Новый год, и местному мастеру Васе поступил заказ из администрации поселка. Надо сварить каркас новогодней елки. Каркас имеет форму конуса и состоит из колец. Известно, что угол основания елки должен быть равен a градусам, высота — n метрам, а расстояние между кольцами — 1 метр. Все кольца располагаются перпендикулярно оси елки.

    Помогите Васе рассчитать длину этих колец, чтобы он приобрел необходимое количество материала — железных труб, из которых будут сварены кольца.

    Формат входных данных

    В трех строках заданы соответственно: высота елки n (1 < n < 10000) в метрах, длина трубы для сварки колец l (1 < l < 10000) в метрах, угол основания елки a (1 < a < 90) в градусах. Все числа целые.

    Формат выходных данных

    В одной строке выведите через пробел два значения: сначала вещественное число — общую длину всех колец в метрах, округленную до сотых, затем целое число — минимальное необходимое количество труб для сварки.

    Пример

    стандартный ввод

    стандартный вывод

    8

    6

    80

    39.88 7

    Замечание

    Подразумевается, что кольцо можно сварить из любого количества частей.

    • Автор:

      wrinkles
  • //PascalABC.NET версия 3.2, сборка 1389

    //Если программа не запускается, то обновите версию

    uses System.Linq;

    begin

       begin

           writeln('I');

           var n := ReadInteger('n=');

           Writeln((1 + 1 + Power(2, n - 1)) * n / 2);

       end;

       

       begin

           writeln;

           writeln('II');

           var n := ReadInteger('n=');

           Writeln(n mod 11 = 0 ? 'YES' : 'NO');

           

       end;

       

       begin

           writeln;

           writeln('III');

           var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;

           writeln;

           

           while a.Any() do

           begin

               write(a[0], ' ');

               a.RemoveAt(0);

               if not a.Any then break;

               

               write(a.Last, ' ');

               a.RemoveAt(a.Count - 1);

               if not a.Any then break;

               

               var n := 0;

               if a.Count > 1 then n := a.Count div 2 - 1;

               write(a[n], ' ');

               a.RemoveAt(n);

           end;

       end;

    end.

    • Отвечал:

      kevin118

    Ответов нет, но ты это испарвиш!