profile
Размещено 4 года назад по предмету Информатика от mrproper37

C. Анализ рейтинга
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. После того, как стратегия была запрограммирована, Вася отправил ее в систему. Проведя ряд тестовых боев, она попала в песочницу и начала сражаться со стратегиями других участников. У каждого участника песочницы есть свой рейтинг, который показывает успешность отправленного решения. После каждого системного сражения он может измениться. Все колебания рейтинга можно увидеть на персональной странице участника в виде графика. Анализировать данные — скучное и утомительное занятие, к тому же Вася занят написанием очередной версии своей стратегии. Но ему очень хочется узнать наиболее удачный и наиболее провальный период выступления своего искусственного интеллекта. Удачным периодом Вася считает такой период, когда рейтинг не понижался, а провальным, соответственно, когда рейтинг не рос. Наиболее удачным периодом Вася считает такой удачный период, на котором произошел наибольший рост рейтинга, а наиболее неудачным считает такой период, на котором произошло наибольшее падение. Помогите Васе по исходным данным найти изменения рейтинга за эти периоды.

Формат ввода
В первой строке входного файла записано целое число N (1 ≤ N ≤ 105) — количество данных. Во второй строке через пробел записаны N целых неотрицательных чисел, не превосходящих 109 — величина рейтинга после каждой игры в хронологическом порядке.

Формат вывода
В выходной файл выведите два числа — на сколько вырос рейтинг за наиболее удачный период и на сколько упал за наиболее провальный.

Пример 1
Ввод
1 0
Вывод
0 0
Пример 2
Ввод
10
110 61 31 1 95 47 37 34 10 119
Вывод 109 109​

  1. Ответ на вопрос
    Ответ на вопрос дан lisovA2005

    Ответ:

    Python 3.6

    n = int(input())

    a = [int(i) for i in input().split()]  

    up, now, max_, min_ = False,  0, 0, 0

    if n == 1:

       print('0 0')

    else:

       for i in range(1, n):

           if a[i - 1] < a[i]:            

               if not up:

                   up = True

                   now = 0

                   

               now += a[i] - a[i-1]

               if now > max_:

                   max_ = now

               

           if a[i-1] > a[i]:

               if up:

                   up = False

                   now = 0

                               

               now += a[i-1] - a[i]

               if now > min_:

                   min_ = now

       print(max_, min_)

    PascalABC.NET 3.5.1

    Program c_contest;

    var Data: array of longword;

       i, n, count, max, min, now: longword;

       up: boolean;

       F: textfile;

    begin

     Assign(F, 'input.txt');

     Reset(F);

     readln(F, n);

     SetLength(Data, n);

     for i := 0 to n-1 do

       begin

         read(F, Data[i]);

       end;  

     Close(F);  

     if n = 1 then write('0 0')

     else

       begin  

         for i := 1 to n-1 do

           begin

             if Data[i-1] < Data[i] Then

               begin            

                 if not up Then

                   begin

                     up := True;

                     now := 0;

                   end;

                   

                 now := now + (Data[i] - Data[i-1]);

                 if now > max Then max := now;

               end;

               

             if Data[i-1] > Data[i] Then

               begin

                 if up Then

                   begin

                     up := False;

                     now := 0;

                   end;

                               

                 now := now + (Data[i-1] - Data[i]);

                 if now > min Then min := now;

               end;

           end;      

         write(max, ' ',min);    

       end;

    end.

    Объяснение:

    По коду видно

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.