Во время проведения олимпиады каждый из участников получил свой идентификационный номер – натуральное число. необходимо отсортировать список участников олимпиады по количеству набранных ими . входные данные на первой строке дано число n (1 ≤ n ≤ 1000) – количество участников. на каждой следующей строке даны идентификационный номер и набранное число соответствующего участника. все числа во входном файле не превышают 105. выходные данные в выходной файл выведите исходный список в порядке убывания . если у некоторых участников одинаковые , то их между собой нужно упорядочить в порядке возрастания идентификационного номера. примеры входные данные 3 101 80 305 90 200 14 выходные данные 305 90 101 80 200 14 входные данные 3 20 80 30 90 25 90 выходные данные 25 90 30 90 20 80

elenafink69 elenafink69    1   01.06.2019 15:03    43

Ответы
taniamishanina taniamishanina  16.05.2020 21:47

type

  base = record

     id: integer;

     ball: integer;

  end;

var

  t: text;

  a: array of array of integer;

  n: integer;

  st, tmp: string;

  err: integer := 1;

  database: base;

begin

  readln(n);

  setlength(a, n);

  for i: integer := low(a) to high(a) do

     setlength(a[i], 2);

  for i: integer := low(a) to high(a) do

  begin

     readln(st);

     tmp := st;

     delete(tmp, pos(' ', tmp, err), tmp.Length - pos(' ', tmp, err) + 1);

     database.id := strtoint(tmp);

     tmp := st;

     delete(tmp, 1, pos(' ', tmp, err));

     database.ball := strtoint(tmp);

     a[i, 0] := database.id;

     a[i, 1] := database.ball;

  end;

  var j: integer := 0;

  assign(t, 'output.txt');

  rewrite(t);

  while (j <= high(a)) do

  begin

     if (j + 1 < high(a)) and (a[j, 1] = a[j + 1, 1]) then

        if (a[j, 0] < a[j + 1, 0]) then begin

           write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

           write(t, inttostr(a[j + 1, 0])); write(t, ' '); write(t, inttostr(a[j + 1, 1])); writeln(t,'');

        end else begin

           write(t, inttostr(a[j + 1, 0])); write(t, ' '); write(t, inttostr(a[j + 1, 1])); writeln(t,'');

           write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

        end;

     if (j+1=n) then

        write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

     inc(j, 2);

  end;

  close(t);

end.

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