比赛 test2 评测结果 AAAAAAAAAA
题目名称 Geodetic 集合 最终得分 100
用户昵称 Emine 运行时间 0.011 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2017-03-12 19:52:33
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
int length[55][55];
int main()
{
	freopen("geo.in","r",stdin);
	freopen("geo.out","w",stdout);
	int n,m;
	scanf("%d %d",&n,&m);
	memset(length,1,sizeof(length));
	int a,b;
	for(int i=1;i<=n;++i)length[i][i]=0;
	while(m--)
	{
		scanf("%d%d",&a,&b);
		length[a][b]=length[b][a]=1;
	}
	for(int k=1;k<=n;++k)
		for(int i=1;i<=n;++i)
			for(int j=1;j<=n;++j)
				if(length[i][k]+length[k][j]<length[i][j])
				{
				    length[j][i]=length[i][j]=length[i][k]+length[k][j];
				}
	scanf("%d",&m);
	while(m--){
		scanf("%d %d",&a,&b);
		for(int i=1;i<=n;++i)
		{
			if(length[a][i]+length[i][b]==length[a][b]) 
			{
				printf("%d ",i);
		    }
		}
		printf("\n");
	}
	return 0;
}