日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[NOIP2009普及]分数线划定 T2 排序

發(fā)布時間:2024/10/8 编程问答 26 如意码农
生活随笔 收集整理的這篇文章主要介紹了 [NOIP2009普及]分数线划定 T2 排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Description

  世博會志愿者的選拔工作正在 A 市如火如荼的進行。為了選拔最合適的人才,A 市對所有報名的選手進行了筆試,筆試分?jǐn)?shù)達到面試分?jǐn)?shù)線的選手方可進入面試。面試分?jǐn)?shù)線根據(jù)計劃錄取人數(shù)的150%劃定, 即如果計劃錄取m名志愿者, 則面試分?jǐn)?shù)線為排名第m*150% 
(向下取整) 名的選手的分?jǐn)?shù),而最終進入面試的選手為筆試成績不低于面試分?jǐn)?shù)線的所有選手。 
現(xiàn)在就請你編寫程序劃定面試分?jǐn)?shù)線,并輸出所有進入面試的選手的報名號和筆試成績。

Input

  第一行,兩個整數(shù) n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n) ,中間用一個空格隔開,其中 n 表示報名參加筆試的選手總數(shù),m表示計劃錄取的志愿者人數(shù)。輸入數(shù)據(jù)保證 m*150%向下取整后小于等于 n。 
第二行到第 n+1 行,每行包括兩個整數(shù),中間用一個空格隔開,分別是選手的報名號 k(1000 ≤ k ≤ 9999)和該選手的筆試成績 s(1 ≤ s ≤ 100) 。數(shù)據(jù)保證選手的報名號各不相同。

Output

第一行,有兩個整數(shù),用一個空格隔開,第一個整數(shù)表示面試分?jǐn)?shù)線;第二個整數(shù)為進入面試的選手的實際人數(shù)。 
從第二行開始,每行包含兩個整數(shù),中間用一個空格隔開,分別表示進入面試的選手的報名號和筆試成績,按照筆試成績從高到低輸出,如果成績相同,則按報名號由小到大的順序輸出。

Sample Input

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

Sample Output

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

HINT

【樣例說明】 
m*150% = 3*150% = 4.5,向下取整后為 4。保證4個人進入面試的分?jǐn)?shù)線為 88,但因為 88有重分,所以所有成績大于等于 88的選手都可以進入面試,故最終有 5 個人進入面試。

Solution

一道結(jié)構(gòu)體排序題,先按成績排序,如果成績相同則按編號排序,算出分?jǐn)?shù)線依次輸出即可。

Code

#include <stdio.h>
#include <algorithm>
using namespace std;
struct note
{
int num;
int score;
}prt[];
bool cmp(const note &a,const note &b)
{
return a.score!=b.score?a.score>b.score:a.num<b.num;
//結(jié)構(gòu)體排序
}
int down(int x)
{
return x*/;
//計算作為分?jǐn)?shù)線的人的排名
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d%d",&prt[i].num,&prt[i].score);
sort(prt+,prt+n+,cmp);//結(jié)構(gòu)體排序
int std=prt[down(m)].score;//分?jǐn)?shù)線
int ans=;
for(int i=;i<=n;i++)
if(std<=prt[i].score)
ans++;//過線的人數(shù)
printf("%d %d\n",std,ans);
for(int i=;i<=ans-;i++)
printf("%d %d\n",prt[i].num,prt[i].score);
printf("%d %d",prt[ans].num,prt[ans].score);
}

總結(jié)

以上是生活随笔為你收集整理的[NOIP2009普及]分数线划定 T2 排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。