P1068 分数线划定

题目描述

有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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值