程式設計思維作業和實驗使用的實**測系統,具有及時獲得成績排名的特點,那它的功能是怎麼實現的呢?
我們千辛萬苦懟完了不忍直視的程式並提交以後,評測系統要麼返回ac,要麼是返回各種其他的錯誤,不論是怎樣的錯法,它總會給你記上一筆,表明你曾經在這兒被坑過,而當你歷經千辛終將它ac之後,它便會和你算筆總賬,表明這題共錯誤提交了幾次。你通過的題數雖然越來越多,但通過每題時你所共花去的時間(從最開始算起,直至通過題目時的這段時間)都會被記錄下來,作為你曾經奮鬥的痕跡。特別的,對於你通過的題目,你曾經的關於這題的每次錯誤提交都會被算上一定的單位時間罰時,這樣一來,你在做出的題數上,可能領先別人很多,但是在做出同樣題數的人中,你可能會因為罰時過高而處於排名上的劣勢。
例如某次考試一共八道題(a,b,c,d,e,f,g,h),每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上了一對括號,裡面有個正數b,則表示該學生ac了這道題,耗去了時間a,同時曾經錯誤提交了b次。例子可見下方的樣例輸入與輸出部分。
輸入資料報含多行,第一行是共有的題數n(1≤n≤12)以及單位罰時m(10≤m≤20),之後的每行資料描述乙個學生的資訊,首先是學生的使用者名稱(不多於10個字元的字串)其次是所有n道題的得分現狀,其描述採用問題描述中的數量標記的格式,見上面的**。
根據這些學生的得分現狀,輸出乙個實時排名。實時排名顯然先按ac題數的多少排,多的在前,再按時間分的多少排,少的在前,如果湊巧前兩者都相等,則按名字的字典序排,小的在前。每個學生佔一行,輸出名字(10個字元寬),做出的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)。名字、題數和時間分相互之間有乙個空格。資料保證可按要求的輸出格式進行輸出。
定義乙個人的結構體儲存name,過題數acnum,總時間time,按照輸入格式,acnum等於第乙個字元不是『-』和』0』的輸入數,time等於過題時間的值+錯誤數*單位罰時,最後按照cmp函式sort排序,在進行輸出。
經過這次題,發現自己對字串的理解很有很多不足
#include
#include
#include
#include
#include
using
namespace std;
struct people
;bool
cmp(people&a,people&b)
string score;
//輸入的值
people p[
10000];
intmain()
break;}
} p[num]
.time+
=time2+time1*m;
//彙總總時間
} num++;}
sort
(p,p+num,cmp)
;for
(int i=
0;i)return0;
}
B 實驗11 10 鍊錶排序
題目描述 問題描述 已知乙個正整數組成的無序序列,個數未知,但至少有乙個元素,你的任務是建立乙個單鏈表,並使用該鍊錶儲存這個正整數序列,然後將這個鍊錶進行排序,使得排序後的鍊錶為遞增序列。正整數的輸入用 1作為結束標誌,注意 1不算這個正整數序列中的元素 不要統計 1 在排序的過程中,你可以自己選擇...
B 資料結構實驗之排序八 快速排序
description 給定n n 10 5 個整數,要求用快速排序對資料進行公升序排列,注意不得使用stl。input 連續輸入多組資料,每組輸入資料第一行給出正整數n 10 5 隨後給出n個整數,數字間以空格分隔。output 輸出排序後的結果,數字間以乙個空格間隔,行末不得有多餘空格。samp...
sort分數排序
綜合題,給你乙個10個人的成績表,現在你要按照以下規則排序 總分越高的在前面,總分相同,比較語文成績,高者在前,語文相同,比較數學,依次類推。輸入10行 分別為姓名,語文,數學,英語成績 小明 85 85 85 小紅 90 85 80 小強 75 85 80 小麗 60 100 100 小愛 92 ...