P1068 分数线划定

来源:互联网 发布:新能源汽车市场数据 编辑:程序博客网 时间:2024/04/28 06:37

题目描述

有N名选手,以成绩排第m*1.5名选手的成绩作为分数线,输出分数线以上选手的编号和成绩,如果成绩相同,编号由小到大排序。

样例输入

6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

样例输出

88 5 1005 95 2390 95 1000 90 1001 88 3239 88 

思路

O(N^2)排序,按题意模拟。
var  n,m,i,j,t,k:longint;  a,b:array[1..6000] of longint;begin  readln(n,m);  for i:=1 to n do    readln(a[i],b[i]);  for i:=1 to n-1 do    for j:=i+1 to n do      if b[i]<b[j] then        begin          t:=b[i];b[i]:=b[j];b[j]:=t;          t:=a[i];a[i]:=a[j];a[j]:=t;        end      else        if (b[i]=b[j])and(a[i]>a[j]) then          begin            t:=b[i];b[i]:=b[j];b[j]:=t;            t:=a[i];a[i]:=a[j];a[j]:=t;          end;  m:=trunc(m*1.5);  k:=b[m];  write(k,' ');  while b[m+1]=k do inc(m);  writeln(m);  for j:=1 to m do    writeln(a[j],' ',b[j])end.
1 0
原创粉丝点击