杭電ACM 1234開門人和關門人

2021-07-16 06:42:40 字數 1415 閱讀 9178

題目:

problem description

每天第乙個到機房的人要把門開啟,最後乙個離開的人要把門關好。現有一堆雜亂的機房籤 

到、簽離記錄,請根據記錄找出當天開門和關門的人。 

input

測試輸入的第一行給出記錄的總天數n ( > 0 )。下面列出了n天的記錄。 

每天的記錄在第一行給出記錄的條目數m ( > 0 ),下面是m行,每行的格式為 

證件號碼 簽到時間 簽離時間 

其中時間按「小時:分鐘:秒鐘」(各佔2位)給出,證件號碼是長度不超過15的字串。

output

對每一天的記錄輸出1行,即當天開門和關門人的證件號碼,中間用1空格分隔。 

注意:在裁判的標準測試輸入中,所有記錄保證完整,每個人的簽到時間在簽離時間之前, 

且沒有多人同時簽到或者簽離的情況。 

sample input

3

1me3021112225321 00:00:00 23:59:59

2ee301218 08:05:35 20:56:35

ma301134 12:35:45 21:40:42

3cs301111 15:30:28 17:00:10

sc3021234 08:00:00 11:25:25

cs301133 21:45:00 21:58:40

sample output

me3021112225321 me3021112225321

ee301218 ma301134

sc3021234 cs301133

幸好做這個題目時我頭腦還算比較清醒的,否則肯定會被題目搞暈了,畢竟輸入就有一大堆,開始我糾結了該如何輸入畢

竟有證件號碼又有時間,後面我果斷用了字串,因為使用字串輸入就會變得簡單,可以把所有的全看成字元這個題目

不僅要比較最先籤

到的時間還需比較最晚簽離的時間,我自己定義了兩個字串儲存了最晚的到達時間

23:59:59和最早

離 開

時間00:00:00

,然後與輸入

的簽到、籤

離時間進行比較,然後把符合條件的時間所代表的證件號碼分別存入兩個

deque

容器,然後最

後存入兩個容器的證件

號碼就分別是所求的最早簽到的,最晚簽離的人的證件號碼。

**如下:

#include//oj1234

#include#includeusing namespace std;

int main()

//時間早就存入容器

if(str2>=s2) //時間晚就存入容器

} cout<}

return 0;

}

杭電1234 開門人和關門人

problem description 每天第乙個到機房的人要把門開啟,最後乙個離開的人要把門關好。現有一堆雜亂的機房籤 到 簽離記錄,請根據記錄找出當天開門和關門的人。input 測試輸入的第一行給出記錄的總天數n 0 下面列出了n天的記錄。每天的記錄在第一行給出記錄的條目數m 0 下面是m行,每...

杭電1234 開門人和關門人

開門人和關門人 結構體 sort time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 每天第乙個到機房的人要把門開啟,最後乙個離開的人要把門關好。現有一堆雜亂的機房籤 到 簽...

杭電oj 1234 開門人和關門人

開門人和關門人 每天第乙個到機房的人要把門開啟,最後乙個離開的人要把門關好。現有一堆雜亂的機房籤 到 簽離記錄,請根據記錄找出當天開門和關門的人。input 測試輸入的第一行給出記錄的總天數n 0 下面列出了n天的記錄。每天的記錄在第一行給出記錄的條目數m 0 下面是m行,每行的格式為 證件號碼 簽...