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

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

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


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

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

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

Войти на сайт