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的方法很笨,例如:把全部请求都存下来,再统计总值,花费了你大量的存储空间。这里面包含了不少没必要要的操做,有不少缺点。