antoska391
?>

В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. После проведения очередного тура, Вася решил, что для дальнейшего улучшения своей стратегии необходимо все бои с теми соперниками, которые сопоставимы с ним по проценту побед. Задана таблица результатов боев в раунде. В каждой строке записаны ник соперника Васи и итоговый счет. Первое число показывает, сколько шайб забила стратегия Васи, вторая — сколько шайб забила стратегия соперника. Необходимо подсчитать процент побед каждого участника и вывести результат, отсортировав его в порядке неубывания процентов. Если процент побед оказался одинаковым, то нужно упорядочить записи по никам лексикографически. Формат ввода В первой строке входного файла записано целое число N (1 ≤ N ≤ 105) — количество записей в таблице. В каждой из последующих N строк через пробел записаны ник соперника, сколько забила Васина команда и сколько забил соперник. Гарантируется, что каждый ник — непустая строка, длина которой не превосходит 10 символов и состоящая из строчных букв латинского алфавита. Так же известно, что никто из участников не забивал больше 1000 голов. Формат вывода В первой строке выходного файла выведите количество соперников. В последующих строках выведите ник соперника и процент побед Васиной команды с точностью не хуже шести знаков после запятой. Пример 1 Ввод1 tpusct 1 60 Вывод 1 tpusct 0.0000000000 Пример 2 Ввод35 v 86 45 v 77 90 pmuehueqm 74 40 mslrsnshk 71 13 fy 43 1 mslrsnshk 76 87 gwpr 37 78 mxzsoel 4 39 pmuehueqm 78 75 v 59 45 gwpr 25 52 bjyaiptxmw 48 48 mxzsoel 13 76 givnyujn 38 70 mslrsnshk 58 66 givnyujn 33 66 pmuehueqm 100 53 pmuehueqm 80 17 pmuehueqm 2 48 mxzsoel 68 4 bjyaiptxmw 43 40 be 81 92 be 34 55 bjyaiptxmw 88 5 mslrsnshk 49 82 givnyujn 91 30 bjyaiptxmw 33 19 bjyaiptxmw 46 17 i 70 35 givnyujn 38 55 pmuehueqm 7 81 mxzsoel 0 9 i 64 30 v 80 42 mslrsnshk 79 64 Вывод10 be 0.0000000000 gwpr 0.0000000000 givnyujn 25.0000000000 mxzsoel 25.0000000000 mslrsnshk 40.0000000000 pmuehueqm 66.6666666667 v 75.0000000000 bjyaiptxmw 80.0000000000 fy 100.0000000000 i 100.0000000000 ​

Информатика

Ответы

terehin863

PascalABC.NET 3.5.1

program D_contest;

type

 TStat = record

   nick: string;

   wins, battles: integer;

   proc: real;

 end;

var

 N, i, num: integer;

 str: array of string;

 stat: array of TStat;

 nick: string;

function found(ni_ck: string): integer;

begin

 found := -1;

 for var e := 0 to Length(stat) - 1 do

 begin

   if stat[e].nick = ni_ck then  

   begin

     found := e;

     break;

   end;

 end;

end;

var

 v_pts, e_pts, l_e: integer;  

 F: textfile;

 k: real;

 s: string;

begin

 Assign(F, 'input.txt');

 Reset(F);

 readln(F, n);

 SetLength(str, n);

 SetLength(stat, 1);

 for i := 0 to n - 1 do

 begin

   readln(F, str[i]);    

   //get enemy_nick

   nick := Copy(str[i], 1, Pos(' ', str[i]) - 1);    

   Delete(str[i], 1, Pos(' ', str[i]));

   

   if (stat[0].nick <> '') then

   begin

     num := found(nick);

     if (num = -1) then //not found

     begin

       l_e := Length(stat);

       SetLength(stat, l_e + 1);

       num := l_e;

       stat[num].nick := nick;

     end;

   end

     else

   begin

     stat[0].nick := nick;

   end;

   

   stat[num].battles += 1;

   

     //get Vania_points

   v_pts := StrToInt(Copy(str[i], 1, Pos(' ', str[i])));    

   Delete(str[i], 1, Pos(' ', str[i]));

   

     //get enemy_points

   e_pts := StrToInt(str[i]);

   

   if v_pts > e_pts Then

     stat[num].wins += 1;

 end;

 Close(F);        

 

 //вычисляю процент побед

 for i := 0 to Length(stat) - 1 do

 begin

   stat[i].proc := stat[i].wins / stat[i].battles;  

 end;

 

 //сортировка по процентам

 for i := 0 to Length(stat) - 2 do  

 begin

   for var j := 0 to Length(stat) - i - 2 do  

   begin

     if stat[j].proc > stat[j + 1].proc then  

     begin

       k := stat[j].proc;

       stat[j].proc := stat[j + 1].proc;

       stat[j + 1].proc := k;

       

       s := stat[j].nick;

       stat[j].nick := stat[j + 1].nick;

       stat[j + 1].nick := s;

     end;

   end;

 end;

 

 //сортировка по алфавиту

 for i := 0 to Length(stat) - 2 do  

 begin

   for var j := 0 to Length(stat) - i - 2 do  

   begin

     if (stat[j].proc = stat[j + 1].proc) and (stat[j].nick > stat[j + 1].nick) then  

     begin

       k := stat[j].proc;

       stat[j].proc := stat[j + 1].proc;

       stat[j + 1].proc := k;

       

       s := stat[j].nick;

       stat[j].nick := stat[j + 1].nick;

       stat[j + 1].nick := s;

     end;

   end;

 end;

 

 writeln(Length(stat));

 for i := 0 to Length(stat) - 1 do

 begin

   write(stat[i].nick, ' ');

   writeln(stat[i].proc * 100:0:6);

 end;

end.

Объяснение:

Смотри код

dzo-dzo
Виды компьютерной графики    Компьютерная графика - раздел информатики, который изучает средства и создания и обработки графических изображений при компьютерной техники. Несмотря на то, что для работы с компьютерной графикой существует множество классов программного обеспечения, различают четыре вида компьютерной графики. Это растровая графика, векторная графика, трёхмерная и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге. 

   Растровую графику применяют при разработке электронных (мультимедийных) и полиграфических изданий. Иллюстрации, выполненные средствами растровой графики, редко создают вручную с компьютерных программ. Чаще для этой цели используют отсканированные иллюстрации, подготовленные художником на бумаге, или фотографии. В последнее время для ввода растровых изображений в компьютер нашли широкое применение цифровые фото- и видеокамеры. Соответственно, большинство графических редакторов, предназначенных для работы с растровыми иллюстрациями, ориентированы не столько на создание изображений, сколько на их обработку. В Интернете применяют растровые иллюстрации в тех случаях, когда надо передать полную гамму оттенклв цветного изображения. 

   Программные средства для работы с векторной графикой наоборот предназначены, в первую очередь, для создания иллюстраций и в меньшей степени для их обработки. Такие средства широко используют в рекламных агентствах, дизайнерских бюро, редакциях и издательствах. Оформительские работы, основанные на применении шрифтов и простейших геометрических элементов, решаются средствами векторной графики намного проще. Существуют примеры высокохудожественных произведений, созданных средствами векторной графики, но они скорее исключение, чем правило, поскольку художественная подготовка иллюстраций средствами векторной графики чрезвычайно сложна. 

   Трёхмерная графика широко используется в инженерном программировании, компьютерном моделировании физических объектов и процессов, в мультипликации, кинемотографии и компьютерных играх. 

   Программные средства для работы с фрактальной графикой предназначены для автоматической генерации изображений путем математических расчетов. Создание фрактальной художественной композиции состоит не в рисовании или оформлении, а в программировании. Фрактальную графику редко применяют для создания печатных или электронных документов, но ее часто используют в развлекательных программах.
Nikolaevna Malika1511
1. Решение "по-взрослому"

// PascalABC.NET 3.2, сборка 1389 от 01.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var F:real->real:=x->2*x*x-6*x+8;
  var a,b:real;
  Write('a b= '); Read(a,b);
  Writeln('Min=',Range(a,b,9).Select(x->F(x)).Min)
end.

Пример
a b= -2 6
Min=3.50617283950617

2. Решение "по-школьному" ("дедушкин метод")

function F(x:real):real;
begin
  F:=2*x*x-6*x+8
end;

var
  a,b,y,h,min:real;
  i:integer;
begin
  Write('a b= '); Read(a,b);
  h:=(b-a)/9;
  min:=F(a);
  for i:= 1 to 9 do begin
    y:=F(a+i*h);
    if y<min then min:=y
    end;
  Writeln('Min=',min)
end.

Пример
a b= -2 6
Min=3.50617283950617

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. После проведения очередного тура, Вася решил, что для дальнейшего улучшения своей стратегии необходимо все бои с теми соперниками, которые сопоставимы с ним по проценту побед. Задана таблица результатов боев в раунде. В каждой строке записаны ник соперника Васи и итоговый счет. Первое число показывает, сколько шайб забила стратегия Васи, вторая — сколько шайб забила стратегия соперника. Необходимо подсчитать процент побед каждого участника и вывести результат, отсортировав его в порядке неубывания процентов. Если процент побед оказался одинаковым, то нужно упорядочить записи по никам лексикографически. Формат ввода В первой строке входного файла записано целое число N (1 ≤ N ≤ 105) — количество записей в таблице. В каждой из последующих N строк через пробел записаны ник соперника, сколько забила Васина команда и сколько забил соперник. Гарантируется, что каждый ник — непустая строка, длина которой не превосходит 10 символов и состоящая из строчных букв латинского алфавита. Так же известно, что никто из участников не забивал больше 1000 голов. Формат вывода В первой строке выходного файла выведите количество соперников. В последующих строках выведите ник соперника и процент побед Васиной команды с точностью не хуже шести знаков после запятой. Пример 1 Ввод1 tpusct 1 60 Вывод 1 tpusct 0.0000000000 Пример 2 Ввод35 v 86 45 v 77 90 pmuehueqm 74 40 mslrsnshk 71 13 fy 43 1 mslrsnshk 76 87 gwpr 37 78 mxzsoel 4 39 pmuehueqm 78 75 v 59 45 gwpr 25 52 bjyaiptxmw 48 48 mxzsoel 13 76 givnyujn 38 70 mslrsnshk 58 66 givnyujn 33 66 pmuehueqm 100 53 pmuehueqm 80 17 pmuehueqm 2 48 mxzsoel 68 4 bjyaiptxmw 43 40 be 81 92 be 34 55 bjyaiptxmw 88 5 mslrsnshk 49 82 givnyujn 91 30 bjyaiptxmw 33 19 bjyaiptxmw 46 17 i 70 35 givnyujn 38 55 pmuehueqm 7 81 mxzsoel 0 9 i 64 30 v 80 42 mslrsnshk 79 64 Вывод10 be 0.0000000000 gwpr 0.0000000000 givnyujn 25.0000000000 mxzsoel 25.0000000000 mslrsnshk 40.0000000000 pmuehueqm 66.6666666667 v 75.0000000000 bjyaiptxmw 80.0000000000 fy 100.0000000000 i 100.0000000000 ​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

neganovaarxi
antoha512
Aleksandr362
Gaziev1636
akopsiroyan
wwladik2606222
konss2
Galina_Yurevna
slitex
serg1976g
e90969692976
Komarovsergeysk
victoriapetrs
Краева
seletan1