自己做的網(wǎng)站怎么放圖片建立網(wǎng)站的幾個步驟
題目描述
世博會志愿者的選拔工作正在 A 市如火如荼的進行。為了選拔最合適的人才,A 市對所有報名的選手進行了筆試,筆試分數(shù)達到面試分數(shù)線的選手方可進入面試。面試分數(shù)線根據(jù)計劃錄取人數(shù)的 150 % 150\% 150% 劃定,即如果計劃錄取 m m m 名志愿者,則面試分數(shù)線為排名第 m × 150 % m \times 150\% m×150%(向下取整)名的選手的分數(shù),而最終進入面試的選手為筆試成績不低于面試分數(shù)線的所有選手。
現(xiàn)在就請你編寫程序劃定面試分數(shù)線,并輸出所有進入面試的選手的報名號和筆試成績。
輸入格式
第一行,兩個整數(shù) n , m ( 5 ≤ n ≤ 5000 , 3 ≤ m ≤ n ) n,m(5 \leq n \leq 5000,3 \leq m \leq n) n,m(5≤n≤5000,3≤m≤n),中間用一個空格隔開,其中 n n n 表示報名參加筆試的選手總數(shù), m m m 表示計劃錄取的志愿者人數(shù)。輸入數(shù)據(jù)保證 m × 150 % m \times 150\% m×150% 向下取整后小于等于 n n n。
第二行到第 n + 1 n+1 n+1 行,每行包括兩個整數(shù),中間用一個空格隔開,分別是選手的報名號 k ( 1000 ≤ k ≤ 9999 ) k(1000 \leq k \leq 9999) k(1000≤k≤9999)和該選手的筆試成績 s ( 1 ≤ s ≤ 100 ) s(1 \leq s \leq 100) s(1≤s≤100)。數(shù)據(jù)保證選手的報名號各不相同。
輸出格式
第一行,有 2 2 2 個整數(shù),用一個空格隔開,第一個整數(shù)表示面試分數(shù)線;第二個整數(shù)為進入面試的選手的實際人數(shù)。
從第二行開始,每行包含 2 2 2 個整數(shù),中間用一個空格隔開,分別表示進入面試的選手的報名號和筆試成績,按照筆試成績從高到低輸出,如果成績相同,則按報名號由小到大的順序輸出。
樣例 #1
樣例輸入 #1
6 3
1000 90
3239 88
2390 95
7231 84
1005 95
1001 88
樣例輸出 #1
88 5
1005 95
2390 95
1000 90
1001 88
3239 88
提示
【樣例說明】
m × 150 % = 3 × 150 % = 4.5 m \times 150\% = 3 \times150\% = 4.5 m×150%=3×150%=4.5,向下取整后為 4 4 4。保證 4 4 4 個人進入面試的分數(shù)線為 88 88 88,但因為 88 88 88 有重分,所以所有成績大于等于 88 88 88 的選手都可以進入面試,故最終有 5 5 5 個人進入面試。
NOIP 2009 普及組 第二題
1.題目分析
輸入志愿者人數(shù)和計劃錄取人數(shù),
實際錄取人數(shù)是計劃錄取人數(shù)的1.5倍后向下取整。
先將志愿者按照筆試成績降序排序,如果筆試成績相同則按照報名號升序排序。
最后輸出錄取分數(shù)線,實際錄取人數(shù)以及所有錄取志愿者的信息。
2.題目思路
- 創(chuàng)建一個結(jié)構(gòu)體存儲志愿者信息:報名號和筆試成績
- 鍵入數(shù)據(jù):參加筆試的人數(shù),計劃錄取的人數(shù)。
- 鍵入?yún)①惖拿恳粋€人的信息
- 按筆試成績對人員進行排序(這里采用的是冒泡排序)
- 若成績相同,按照報名號升序排序。
- 計算錄取位次
- 根據(jù)錄取位次計算錄取分數(shù)
- 統(tǒng)計通過錄取分數(shù)的志愿者人數(shù)
- 打印錄取分數(shù)和錄取人數(shù)
- 打印錄取名單
3.代碼實現(xiàn)
#include <iostream>
#include <math.h>using namespace std;
//選手信息
typedef struct data {//報名號int reg;//筆試成績int grade;
} volunteer;int main() {//參加筆試的人數(shù),計劃錄取的人數(shù)int n, m;cin >> n >> m;volunteer vols[n];for (int i = 0; i < n; ++i) {cin >> vols[i].reg >> vols[i].grade;}//按筆試成績對人員進行排序for (int i = 0; i < n; ++i) {for (int j = 0; j < n - i - 1; ++j) {if (vols[j].grade < vols[j + 1].grade) {volunteer temp = vols[j];vols[j] = vols[j + 1];vols[j + 1] = temp;} else if (vols[j].grade == vols[j + 1].grade) {//成績相同,按照報名號升序排序if (vols[j].reg > vols[j + 1].reg) {volunteer temp = vols[j];vols[j] = vols[j + 1];vols[j + 1] = temp;}}}}//計算錄取位次m = floor(m * 1.5);//計算錄取分數(shù)int pass = vols[m-1].grade;int cnt = 0;//統(tǒng)計通過錄取分數(shù)的志愿者人數(shù)for (int i = 0; i < n; ++i) {if (vols[i].grade >= pass) {cnt++;}}cout << pass << " " << cnt << endl;//打印錄取名單for (int i = 0; i < cnt; ++i) {cout << vols[i].reg << " " << vols[i].grade << endl;}return 0;
}