FAFU-OJ 1224 Ping

http://acm.fafu.edu.cn/problem.php?id=1224

上面是网站链接地址;

Ping
Time Limit:1000MSMemory Limit:65536KB
Total Submissions:28Accepted:10
Share
Description:
      在操作系统中,我们常常用ping程序来查看某两个主机之间是否能够相通,其基本格式是ping ip/主机名。Ping程序的原理是从源主机向目的主机发送一个icmp回显请求报文,如果目的主机收到这个报文就会发送回一个icmp回显应答的报文,因此我们可以根据是否收到目的主机的应答来判断两个主机是否能够相通(假设报文在传送过程中不会丢失)。
      在linux操作系统上,我们还可以用tcpdump程序来查看通过主机网卡的所有报文,它的原理是通过将网络接口卡设置成混杂模式来截获经过网络接口的每一个分组,现在给出在主机0运行tcpdump的所有输出,试只根据这些信息来判断某两个主机是否相通。(假设如果a能够ping通b,b也能ping通a)。
      
Input:
输入文件含有多组测试数据,每组数据的第一行有两个整数k,m(0 < k<=30000),k代表总共截获了k个报文,m代表有m个询问,接下来的k行每行描述一个报文,有以下两种格式: 1.****** 表示其他报文 2.i Reply 0 表示主机i向主机0发回一个icmp回显应答报文( 0< i<=20000) 再接下来的m行中每行有两个整数a b,表示询问a b是否相通。(0 < a,b<=20000)
Output:
对于每个询问如果能够判断出相通则输出YES,否则输出NO。
Sample Input:
3 2
******
1 reply 0
2 reply 0
0 1
 2 3
 
4 1
******
1 reply 0
 5 reply 0
******
1 2
 
Sample Output:
YES
 NO
 NO
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h> 
#include <conio.h>

int main()
{
	int i, j;
	int n, m, t1,t2;
	int temp;
	char b[5], s[20];
	int a[30001];
	char s[20];
	while(scanf("%d %d", &n, &m) == 2 && gets(b)){
		j = 1;
		for(i = 0; i < n; i++)
		{
			gets(s);
			a[j++] = atoi(s);
		}
		while(m--){
			scanf("%d %d", &t1, &t2);
			int flagt1 = 0, flagt2 = 0;
			if(t1 != 0  && t2 != 0)
			{
				for(i = 1; i < j; i++)
				{
					if(a[i] == t1){
						flagt1 = 1;
					}
					if(a[i] == t2){
						flagt2 = 1;
					}
					if(flagt1 && flagt2)	break;
				}
				if(flagt1 && flagt2)	printf("YES\n");
				else	printf("NO\n");
			}
			if(t1 == 0 || t2 == 0){
				t1 = t1 > t2? t1 : t2;
				for(i = 1; i < j; i++)
				{
					if(a[i] == t1){	
						flagt1 = 1;
						break;
					}
				}
				if(flagt1)  printf("YES\n");
				else	printf("NO\n");
			}
		}
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值