• Предмет: Информатика
  • Автор: PavelProtskiy
  • Вопрос задан 8 лет назад

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

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

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

Ответы

Ответ дал: AndriHack
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.

Ответ дал: osgamig47
0
переменная f1 не назначена
Вас заинтересует