fork download
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<cstring>
  4. using namespace std;
  5. struct in
  6. {
  7. char a[11];
  8. char b[11];
  9. }s[55];
  10. struct name
  11. {
  12. char na[11];
  13. double ro;
  14. };
  15. name num[55],temp[55];
  16. double find(char *p,int n)
  17. {
  18. //printf("-->%s ",p);
  19. for(int i=0;i<=n;i++)
  20. if(strcmp(num[i].na,p)==0)
  21. {
  22. //printf("%s %lf\n",num[i].na,num[i].ro);
  23. return num[i].ro;
  24. }
  25. return 0;
  26. }
  27. int main()
  28. {
  29. int n,m;
  30. while(scanf("%d%d",&n,&m)!=EOF)
  31. {
  32. for(int i=0;i<=n;i++)
  33. num[i].ro=0;
  34. scanf("%s",&num[0].na);
  35. num[0].ro=1<<30;//赋值为1后面小数会很小,超出范围
  36. for(int i=1;i<=n;i++)
  37. scanf("%s%s%s",&num[i].na,&s[i].a,&s[i].b);
  38. for(int i=1;i<=n;i++)
  39. {
  40. for(int j=1;j<=n;j++)
  41. {
  42. //printf("s[j].a=%s s[j].b=%s\n",s[j].a,s[j].b);
  43. num[j].ro=(find(s[j].a,n)+find(s[j].b,n))/2;
  44. //printf("num[%d]=%.6lf\n",j,num[j].ro);
  45. }
  46. }
  47. double max=0;
  48. int ans;
  49. for(int i=0;i<m;i++)
  50. {
  51. scanf("%s",&temp[i].na);
  52. double flag=find(temp[i].na,n);
  53. //printf("flag=%lf\n",flag);
  54. if(max<flag)
  55. {
  56. max=flag;
  57. ans=i;
  58. }
  59. }
  60. printf("%s\n",temp[ans].na);
  61. }
  62. return 0;
  63. }
Success #stdin #stdout 0s 4544KB
stdin
Standard input is empty
stdout
Standard output is empty