B 爆零 大力出奇蹟

2021-10-03 13:46:05 字數 2229 閱讀 9440

問題描述

程式設計思維作業和實驗使用的實**測系統,具有及時獲得成績排名的特點,那它的功能是怎麼實現的呢?

我們千辛萬苦懟完了不忍直視的程式並提交以後,評測系統要麼返回ac,要麼是返回各種其他的錯誤,不論是怎樣的錯法,它總會給你記上一筆,表明你曾經在這兒被坑過,而當你歷經千辛終將它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

根據這些學生的得分現狀,輸出乙個實時排名。實時排名顯然先按ac題數的多少排,多的在前,再按時間分的多少排,少的在前,如果湊巧前兩者都相等,則按名字的字典序排,小的在前。每個學生佔一行,輸出名字(10個字元寬),做出的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)。名字、題數和時間分相互之間有乙個空格。資料保證可按要求的輸出格式進行輸出。

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

解題思路:

用結構體儲存每個學生的資訊,結構體包含使用者名稱,通過題目數量,花費時間。cmp函式先按ac的題量從大到小排,再按時間從小到大排,最後是按字典序排名。

不斷輸入參賽人員的資訊,對每個人員,迴圈讀入n個題目的比賽情況。這裡用乙個字元陣列來表示每一道題的資訊。如果第乙個字元等於負數或者為0,則直接進入下乙個題目的輸入。如果為正數,先計算括號左邊的用時,然後計算括號中的罰時。

最後輸出名字時,需要左對齊(%-10s)。

#include

#include

#include

#include

#define maxn 10001

using

namespace std;

struct node

stu[maxn]

;//參加比賽的人數

bool

cmp(node x,node y)

//結構體排序規則

intmain()

stu[q]

.time+

=tmp*m;

//加上(之前錯誤提交次數乘上罰時總用時)

} q++

;//計數參賽人數

}sort

(stu,stu+q,cmp)

;//按規則排序

for(

inti=

0;i)// 輸出排名資訊

printf

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

,stu[i]

.name,stu[i]

.ac,stu[i]

.time)

;//按格式輸出

return0;

}

B 爆零 大力出奇蹟

程式設計思維作業和實驗使用的實 測系統,具有及時獲得成績排名的特點,那它的功能是怎麼實現的呢?我們千辛萬苦懟完了不忍直視的程式並提交以後,評測系統要麼返回ac,要麼是返回各種其他的錯誤,不論是怎樣的錯法,它總會給你記上一筆,表明你曾經在這兒被坑過,而當你歷經千辛終將它ac之後,它便會和你算筆總賬,表...

Week2 B 爆零 大力出奇蹟

week2 b 爆零 大力出奇蹟 程式設計思維作業和實驗使用的實 測系統,具有及時獲得成績排名的特點,那它的功能是怎麼實現的呢?我們千辛萬苦懟完了不忍直視的程式並提交以後,評測系統要麼返回ac,要麼是返回各種其他的錯誤,不論是怎樣的錯法,它總會給你記上一筆,表明你曾經在這兒被坑過,而當你歷經千辛終將...

Week2實驗B 爆零 大力出奇蹟

提交實驗使用的實 測系統,排名按多關鍵字排序,第一關鍵字為題目ac的個數,第二關鍵字為時間 包括做題時間與罰時 第三關鍵字為名字的字典序,小的在前。例如某次考試一共八道題 a,b,c,d,e,f,g,h 每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有...