znatokchok
18.06.2020 13:26

УМОЛЯЮ На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований по четырем видам спорта, участие в каждом из которых оценивается от 0 до 10 ( получает ученик, не принимавший участия в соревнованиях по данному виду спорта). Победители определяются по наибольшей сумме набранных . Известно, что общее количество участников соревнований не превосходит 100.

В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат:

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов; - строка, содержащая четыре целых числа, разделенных пробелом, соответствующих , полученным на соревнованиях по каждому из четырех видов спорта. При этом и , и разделены одним пробелом. Примеры входных строк:

Иванова Мария 5 8 6 3

Петров Сергей 9 9 5 7

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ilyaslepuhin
20.08.2021 08:09
Var
  i,j,n:integer;
  m: array[1..10,1..10] of integer;
  flag:boolean;
  sum: array[0..1] of longint;
 begin
  readln(n);
  flag:=true;
  for i:=1 to n do
   begin
    for j:=1 to n do
     read(m[i,j]);
    readln;
   end;
     //Проверяем строки
  i:=1;
  for j:=1 to n do
      sum[i mod 2]:=sum[i mod 2]+m[i,j];
  while ((i<n) and flag) do
    begin
     i:=i+1;
     for j:=1 to n do
      sum[i mod 2]:=sum[i mod 2]+m[i,j];
     if sum[0]<>sum[1] then flag:=false;
     sum[(i+1) mod 2]:=0;
    end;
    //Проверяем столбцы
  sum[0]:=0;
  sum[1]:=0;
  j:=1;
  for i:=1 to n do
      sum[j mod 2]:=sum[j mod 2]+m[i,j];
  while ((j<n) and flag) do
    begin
     j:=j+1;
     for i:=1 to n do
      sum[j mod 2]:=sum[j mod 2]+m[i,j];
     if sum[0]<>sum[1] then flag:=false;
     sum[(j+1) mod 2]:=0;
    end;
  sum[0]:=0;
  sum[1]:=0;
  j:=1;
  for i:=1 to n do
   begin
    sum[0]:=sum[0]+m[i,j];
    sum[1]:=sum[1]+m[n-i+1,j];
    j:=j+1;
   end;
  if  sum[0]<>sum[1] then flag:=false;
  if flag then writeln('Магический');
 end.
0,0(0 оценок)
Ответ:
Крад
22.04.2021 22:35
17_{10}=10001_{2}

17:2=8 (остаток 1)
8:2=4 (остаток 0)
4:2=2 (остаток 0)
2:2=1 (остаток 0)

Складываем все полученные остатки от конца к началу, записывая первым числом частное последнего примера: 1+0+0+0+1=10001

46_{10}=101110_{2}

46:2=23 (остаток 0)
23:2=11 (остаток 1)
11:2=5 (остаток 1)
5:2=2 ( остаток 1)
2:2=1 (остаток 0)

Делаем то же самое: 1+0+1+1+1+0=101110

10110_{2}=22_{10}
Ставим над каждой цифрой числа 10110 цифры, начиная с 0 (степень числа), начиная с конца: 43210\\10110
Умножаем каждую из цифр числа 10110 на число 2 (так как двоичная система счисления) в степени числа, которое указано над каждой из цифр числа 10110 (от 4 до 0), и складываем полученные произведения: 1*2^{4}+0*2^{3}+1*2^{2}+1*2^{1}+0*2^{0}=16+0+4+2+0=22

11101_{2}=29_{10}

Делаем то же самое: 1*2^4+1*2^3+1*2^2+0*2^1+1*2^0=16+8+4+0+1=29
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота