profile
Размещено 5 лет назад по предмету Информатика от alekskseniya

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

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

    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.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.