首页 > 学院 > 开发设计 > 正文

P1068 分数线划定

2019-11-14 12:19:26
字体:
来源:转载
供稿:网友

题目描述

有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.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表