校賽排名2
time limit:1000ms memory limit:65535k
題型: 程式設計題 語言: 無限制
描述下面是校賽的排名規則:
比賽期間,提交**後,系統會返回正確或錯誤等結果。最後的獲勝者為正確解答題目最多,如果同題數則總用時最少的隊伍。
每道試題的時間花費將從競賽開始到試題提交並且被判定為正確為止,其間每一次提交執行結果被判錯誤的話將被加罰20分鐘時間,
未正確解答的試題不記時,如果已經返回正確的題目再重複提交則不影響結果。
例如:a、b兩隊都正確完成兩道題目,其中a隊提交這兩題的時間分別是比賽開始後60分鐘和165分鐘,b隊為80分鐘和130分鐘,
但b隊第乙個題提交了2次才通過。這樣a隊的總用時為60+165=225而b隊為(80+20)+130=230,所以a隊以總用時少而獲勝。
現在給出裁判機上面所有隊伍的提交時間(分鐘數)和返回結果,需要你程式設計輸出當前比賽的排行榜。
注:0題的隊伍不需要輸出
輸入格式
每行乙個評判結果,格式為:時間(第幾分鐘提交的)+半形空格+隊名+半形空格+題號+半形空格+評判結果(0通過,其它為出錯)
題號由大寫a字元開始,第2題是b,依次類推,最多不超過15題
所有評判結果已經按時間排序好
輸出格式
輸出排名,一行乙個,格式為隊名+半形空格+通過題數+半形空格+罰時
注:0題的隊伍不需要輸出
測試資料中,沒有同題且同罰時的情況
輸入樣例
2 abc a 4
5 abc b 0
6 def a 0
10 abc a 0
13 xyx a 4
20 def b 5
輸出樣例
abc 2 35
def 1 6
這道題目的簡介和acm的規則是一樣的,我就不說明了。這題的做法是按隊伍的ac數進行排序,如果ac數相同就按時間(越少越強),如果ac數為0則不輸出。這裡只需要記錄每個隊伍的名字和每個隊伍ac一道題目所用的次數和ac題目的個數和正常比賽罰時即可。
因為這題是老師給出**讓你填,所以很簡單,不過要注意的點是,已經完成過一次的題目要做好標記,讓原來的ac【nu】變為1,這樣使得以後做這道題目的時候,這道題目因為已經被ac所以不再給予考慮。
下面給出**:
#include
#include
#include
#include
using
namespace std;
typedef
struct
score;
score teams[
100000]=
};bool
cmp(score a,score b)
intmain()
//統計該隊做題情況
if(re==
0&& teams[i]
.ac[nu]==0
)else
if(re!=
0&& teams[i]
.ac[nu]==0
)//未通過且之前沒有通過
}stable_sort
(teams,teams+count1,cmp)
;for
(int j=
0; j)return0;
}
SCAU 18107 校賽排名
description 校賽結束了,每乙個參賽選手由3個資料項構成 通過題數,用時分鐘數,姓名 排名按照通過題數排序 通過題數多的排前,同題數的,罰時少的排前。如果題數相同,罰時也相同,而按資料讀取的先後排。給你n個參賽選手的資料,按排序先後,輸出姓名 輸入格式 第乙個數為n,n 500000 此後...
SCAU計算智慧型二周目
18118 勇者鬥惡龍 description 有n個頭的惡龍,你希望僱一些騎士把它殺死 即砍掉所有頭 村里有 個騎士可以僱傭,乙個能力值為x的騎士可以砍掉惡龍 乙個直徑不超過x的頭,且需要支付x個金幣。如何僱傭騎士才能砍掉惡龍的所有頭,且需要支付的金幣最少?注意,乙個騎士只 能砍乙個頭 且不能被僱...
校選拔賽F題
給n個二維點,求兩座標差值為相反數的點對數 include using namespace std typedef unsigned long long ull int ans 0 輸出答案 mapca 定義對映,first是點差值,second是這個點差有多少個點 int main map ite...