Во время проведения олимпиады каждый из участников получил собственный идентификационный номер

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

Входные данные
На первой строке дано число 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

Задать свой вопрос
1 ответ

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 lt;= high(a)) do

  begin

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

        if (a[j, 0] lt; 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.

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Я хочу найти решение и ответ для этой задачи и получить

Математика.

Здравствуйте Меня зовут Виталий, я AdOps-аналитик компании  Adfinity.pro Заинтересовал ваш проект obrazovalka.com Думаю сможем увеличить

Разные вопросы.

мне очень срочно нужно сочинение по рассказу экспонат номер по дной

Литература.

мне очень срочно нужно сочинение по рассказу экспонат номер по дной

Литература.

В семье из трех человек три электронных устройства: ноутбук, планшет и

Разные вопросы.

Жаркыраган кашка маш жаралгандан ашка маш табышмак жообу менен

Кыргыз тили.

За лето подруги прочитали 48 книг.Причем Оля прочитала в 3 раза

Математика.

Периметр равнобедренного треугольника ABC (AB=BC) равен 34 см. Периметр треугольника ABM,

Разные вопросы.

«Металлическая болванка, нагрета до 420C, охлаждается в воздухе, температура которого 20C,

Алгебра.

xdy=(x+y)dx, y(1) = 0. по условию Коши помогите решить

Алгебра.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт