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

kotofrei231 kotofrei231    1   30.09.2019 01:40    11

Ответы
KarinaCorso KarinaCorso  30.09.2019 01:40

не так уж и трудно, если

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика