Вопрос задан 12.07.2023 в 23:30. Предмет Информатика. Спрашивает Аманоллина Айым.

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​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Икконен Ваня.

Ответ:

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.

Объяснение:

По коду видно

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы хотите написать программу для анализа изменений рейтинга в хронологическом порядке. Вам нужно вычислить, на сколько вырос рейтинг за наиболее удачный период и на сколько упал за наиболее провальный период. Вот пример, как можно решить эту задачу на Python:

python
def analyze_rating_changes(N, ratings): max_up = 0 max_down = 0 current_up = 0 current_down = 0 for i in range(1, N): if ratings[i] > ratings[i - 1]: current_up += 1 current_down = 0 max_up = max(max_up, current_up) elif ratings[i] < ratings[i - 1]: current_down += 1 current_up = 0 max_down = max(max_down, current_down) else: current_up = 0 current_down = 0 return max_up, max_down # Чтение входных данных N = int(input()) ratings = list(map(int, input().split())) # Анализ изменений рейтинга max_up, max_down = analyze_rating_changes(N, ratings) # Вывод результатов print(max_up, max_down)

Вы можете вставить этот код в файл main.py, затем создать файл input.txt с входными данными (как в примере ввода) и выполнить программу, чтобы получить результаты в соответствии с форматом вывода.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос