2015华为校招机试题

来源:互联网 发布:买房需要注意什么 知乎 编辑:程序博客网 时间:2024/06/06 10:48
垃圾短信识别 
描述: 大众对垃圾短信深恶痛绝,希望能对垃圾短信发送者进行识别。
经分析,发现正常用户的短信通常具备交互性,而垃圾短信往往都是大量单向的短信。如下图所示。

现在请你根据历史短信记录,识别出垃圾短信发送者。
某人A符合以下条件之一,则认为是垃圾短信发送者:

üA发送短信的接收者中,没有发过短信给A的人数 > L。
üA发送的短信数 - A接收的短信数 > M。
ü如果存在X,A发送给X的短信数-A接收到X的短信数 > N。
本题中:
L = 20
M = 50
N = 10 
运行时间限制: 无限制 
内存限制: 无限制 
输入: 查询是否垃圾短信发送者,一行,多个发送者,以空格隔开
增加短信发送记录,多行,每行一次发送记录,2个非负整数,格式:发送者 接收者,以空格隔开

输出: 针对查询者,是垃圾短信发送者返回1,否则返回0(包括短信发送者无发送记录等情况)。样例是查询2位:90909090 20
其中90909090是垃圾短信发送者,20不是,输出:1 0


以一个空格隔开。
 样例输入: 
90909090 20
90909090 0
90909090 1
90909090 2
90909090 3
90909090 4
90909090 5
90909090 6
90909090 7
90909090 8
90909090 9
90909090 10
90909090 11
90909090 12
90909090 13
90909090 14
90909090 15
90909090 16
90909090 17
90909090 18
90909090 19
90909090 20
90909090 21
90909090 22
90909090 23
90909090 24
90909090 25
90909090 26
90909090 27
90909090 28
90909090 29
0 90909090 
样例输出: 1 0 
答案提示:  C语言可以使用下面的方法: unsigned int SenderId; unsigned int ReceiverId;  while (scanf("%d %d",&SenderId,&ReceiverId) != EOF)  //异常时退出处理  {       //处理短信发送记录   } 
0 0