• Как решить эту задачу по информатике?
    В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. После проведения очередного тура, Вася решил, что для дальнейшего улучшения своей стратегии необходимо просмотреть все бои с теми соперниками, которые сопоставимы с ним по проценту побед. Задана таблица результатов боев в прошедшем раунде. В каждой строке записаны ник соперника Васи и итоговый счет. Первое число показывает, сколько шайб забила стратегия Васи, вторая — сколько шайб забила стратегия соперника. Необходимо подсчитать процент побед каждого участника и вывести результат, отсортировав его в порядке неубывания процентов. Если процент побед оказался одинаковым, то нужно упорядочить записи по никам лексикографически.

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

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

Ответы 2

  • переменная f1 не назначена
    • Автор:

      henrytflc
    • 6 лет назад
    • 0
  • Не так уж и трудно, если подумать...

    program Project2;

    var

    n,a,b,c,i,k,max,min: longint;

    inp,outp: text;

    begin

    assign(inp,'input.txt');

    reset(inp);

    assign(outp,'output.txt');

    rewrite(outp);

    readln(inp,n);

    max:=0;

    min:=0;

    c:=0;

    for i:=1 to n do

    begin

    read(f1,a);

    if i=1 then

    b:=a;

    if a>max then

    max:=a;

    k:=a-c;

    c:=a;

    if k<0 then

    begin

    k:=abs(k);

    min:=min+k;

    if k>min then

    min:=k;

    end;

    end;

    max:=max-b;

    write(outp,max,' ',min);

    close(inp);

    close(outp);

    end.

    • Автор:

      piggy8zhy
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years