记录编号 382798 评测结果 AAAAAAAAAA
题目名称 Geodetic 集合 最终得分 100
用户昵称 GravatarHyoi_deque 是否通过 通过
代码语言 C++ 运行时间 0.009 s
提交时间 2017-03-14 19:01:57 内存使用 0.30 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. int dis[55][55];
  4. int main(){
  5. freopen("geo.in","r",stdin);
  6. freopen("geo.out","w",stdout);
  7. int n,m;
  8. scanf("%d %d",&n,&m);
  9. memset(dis,63,sizeof(dis));
  10. int a,b;
  11. for(int i=1;i<=n;++i)dis[i][i]=0;
  12. while(m--){
  13. scanf("%d%d",&a,&b);
  14. dis[a][b]=dis[b][a]=1;
  15. }
  16. for(int k=1;k<=n;++k)
  17. for(int i=1;i<=n;++i)
  18. for(int j=1;j<=n;++j)
  19. if(dis[i][k]+dis[k][j]<dis[i][j])dis[j][i]=dis[i][j]=dis[i][k]+dis[k][j];
  20. scanf("%d",&m);
  21. while(m--){
  22. scanf("%d %d",&a,&b);
  23. for(int i=1;i<=n;++i){
  24. if(dis[a][i]+dis[i][b]==dis[a][b])printf("%d ",i);
  25. }
  26. printf("\n");
  27. }
  28. return 0;
  29. }