Deadline:2.3 23:00python
對於你所完成題目,把實現思路和實現結果記錄在博客中,把代碼提交到github的倉庫上。c++
大學期間,你老是點子不少,你利用申請的專利,開了一家互聯網公司,爲客戶提供高效、快捷的服務。git
有一天,訂單量忽然大漲,欣喜之餘,祕書卻告訴你,今天的營業額跌到谷底,客服電話被打爆。github
你發現,看似不少的訂單請求,其實只是給你發了一個「hello」而已,服務器忙於應付大量的hello, 已經沒辦法給原有用戶提供正常的服務了,基本處於癱瘓的狀態。編程
通過討論,多是受到了黑客的DDos(分佈式拒絕服務)攻擊。黑客經過發送大量的無用的請求信息,佔用你的服務器資源,讓服務器無法給用戶提供正常的服務。數組
當務之急,是先恢復服務器,把攻擊你的黑客都拉進黑名單,讓服務器不要理會這些請求。安全
第一步,就是要把黑客檢測出來。服務器
你須要對請求進行審查,找出其中有問題的請求,而後把發送方拉黑。網絡
這些請求長這個樣子:發送方的名字由4個小寫英文字母組成,後面跟着接收方和請求信息的大小,你能夠經過請求信息的大小推測請求的內容。編程語言
發送方 | 接收方 | 請求信息的大小 | 發送方 | 接收方 | 請求信息的大小 |
---|---|---|---|---|---|
abcd | bob | 64 | abcd | bob | 64 |
khfd | bob | 265 | abcd | bob | 64 |
okng | bob | 364 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
dasj | bob | 863 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
abcd | bob | 64 | abcd | bob | 64 |
……
你的服務器就是那個可憐的Bob,而發送方有不少,有的是普通用戶,而有的就是黑客了。
很明顯,黑客在短期給你發了大量的信息,發送方中的 abcd 就頗有多是黑客,由於他在短期內給你發了不少信息量很小的請求(64,極可能只有hello),並且這些請求值總值已經超過了1500。本着寧錯殺一千,不放過一個的原則,只要總的請求信息的大小超過T=1500,就把它拉黑。
編程語言不限
例如:示例中有28個請求,其中abcd發了25個請求,這些請求的總和S是1600>1500=T,因此abcd被認爲是黑客,就把abcd加到你的黑名單裏去。
輸入:
名字和信息大小用一個空格隔開,每條信息用一個換行隔開
lhyy bob 100 hzrr bob 700 cyxx bob 364 lhyy bob 700 lhyy bob 800 zzyy bob 300 zzyy bob 800 zzyy bob 600
輸出:
第一行輸出黑客的總個數,第二行輸出黑客名,每一個黑客名用一個換行隔開
2 lhyy zzyy
如今你已經暫時恢復了服務。
但你發現,1的方法很笨,例如:把全部請求都存下來,再統計總值,花費了你大量的存儲空間。這裏麪包含了不少沒必要要的操做,有不少缺點。