记录编号 233246 评测结果 AAAAAAAAAA
题目名称 Geodetic 集合 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2016-03-04 12:15:50 内存使用 0.30 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
int dis[55][55];
int main(){
	freopen("geo.in","r",stdin);
	freopen("geo.out","w",stdout);
	int n,m;
	scanf("%d %d",&n,&m);
	memset(dis,63,sizeof(dis));
	int a,b;
	for(int i=1;i<=n;++i)dis[i][i]=0;
	while(m--){
		scanf("%d%d",&a,&b);
		dis[a][b]=dis[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(dis[i][k]+dis[k][j]<dis[i][j])dis[j][i]=dis[i][j]=dis[i][k]+dis[k][j];
	scanf("%d",&m);
	while(m--){
		scanf("%d %d",&a,&b);
		for(int i=1;i<=n;++i){
			if(dis[a][i]+dis[i][b]==dis[a][b])printf("%d ",i);
		}
		printf("\n");
	}
	fclose(stdin);fclose(stdout);
	return 0;
}