Week2實驗B 爆零 大力出奇蹟

2021-10-03 11:32:55 字數 1748 閱讀 3496

提交實驗使用的實**測系統,排名按多關鍵字排序,第一關鍵字為題目ac的個數,第二關鍵字為時間(包括做題時間與罰時),第三關鍵字為名字的字典序,小的在前。

例如某次考試一共八道題(a,b,c,d,e,f,g,h),每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上了一對括號,裡面有個正數b,則表示該學生ac了這道題,耗去了時間a,同時曾經錯誤提交了b次。

input:

輸入資料報含多行,第一行是共有的題數n(1≤n≤12)以及單位罰時m(10≤m≤20),之後的每行資料描述乙個學生的資訊,首先是學生的使用者名稱(不多於10個字元的字串)其次是所有n道題的得分現狀

output:

根據這些學生的得分現狀,輸出乙個實時排名

sample input:

8 20

gugudong 96 -3 40(3) 0 0 1 -8 0

hrz 107 67 -3 0 0 82 0 0

tt 120(3) 30 10(1) -3 0 47 21(2) -2

omrailgun 0 -99 -8 0 -666 -10086 0 -9999996

yjq -2 37(2) 13 -1 0 113(2) 79(1) -1

zjm 0 0 57(5) 0 0 99(3) -7 0

sample output:

tt 5 348

yjq 4 342

gugudong 3 197

hrz 3 256

zjm 2 316

omrailgun 0 0

注:每個學生佔一行,輸出名字(10個字元寬),做出的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)

分析:1.解決讀入學生成績問題,a(b)字元怎樣讀入,用sscanf格式化輸入;

2.用sscanf判斷及正確讀入資料後進行時間計算;

3.多關鍵字排序演算法

bool

com(sc x,sc y)

return x.ac>y.ac;

}

比較兩個字串大小,用strcmp()函式進行比較

4.按照要求對齊格式輸出,預設右對齊,加"-"表示左對齊

//c中

printf

("%-10s %2d %4d\n"

,arr[k]

.name,arr[k]

.ac,arr[k]

.time)

;//c++中

cout

)<.name<<

" ";

該題主要考察的就是string的標準輸入輸出,以及string相應的函式運用

#include

#include

#include

#include

using

namespace std;

struct scarr[

1000];

bool

com(sc x,sc y)

return x.ac>y.ac;

}int

main()

if(num==

1&t1>0)

} i++;}

sort

(arr,arr+i,com)

;for

(int k=

0;k)return0;

}

Week2 實驗B 成績排名

模擬oj的成績排名。輸入 題數n 單位罰時m 之後每行資料代表乙個學生的資訊 使用者名稱 不超過10個字元 n道題的的得分現狀。每道題的得分現狀 負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上了一對括號,裡面有個正數b,則表示該學生ac了這道題,耗...

Week2實驗 A 化學

問題描述 有六個原子,其中原子隨意編號,給定五條原子之間相連的邊,判斷輸入結構是下圖的哪一種 思路 很顯然可以用每個原子的度來判斷,但是有兩個結構的最大度數都是3,3 methy 和 2 methy 進一步判斷發現3 methy連線了兩個度為2的原子,根據此就能區分這兩個。最初的 比較繁瑣,後來經過...

Week2實驗 A 化學 模擬

包含6個原子和5個化學鍵的烷烴基共有5種,用1 6標號6個原子,然後用一對數字a,b表示原子a和原子b之間有乙個化學鍵。給定5行a,b,判斷出它的類別,輸出其化學名稱 見下圖 原子沒有標號方法,即同乙個原子可能標號為1,也可能為2,依次類推。首先找出5種類別之間較大的區別 n 類的各原子鍵數分別為1...