fork(2) download
  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <iostream>
  5. using namespace std;
  6. #define INF 1e9
  7. int graph[1000][1000], m[1001], n; //this is the array which I want to decrease
  8. int main(){
  9. int u, v, flag=0, testCase = 1;
  10. while(scanf("%d%d", &u, &v), u||v){
  11.  
  12. n = 0;
  13. memset(m, 0, sizeof(m));
  14.  
  15. for(int i = 0; i < 1000; i++)
  16. for(int j=0; j<1000; j++)
  17. graph[i][j] = INF;
  18.  
  19. if(!m[u])
  20. m[u] = ++n;
  21.  
  22. if(!m[v])
  23. m[v] = ++n;
  24.  
  25. graph[m[u]][m[v]] = 1;
  26. graph[m[u]][m[u]] = 0;
  27. graph[m[v]][m[v]] = 0;
  28.  
  29. while(scanf("%d%d", &u, &v), u||v){
  30. if(!m[u])
  31. m[u] = ++n;
  32.  
  33. if(!m[v])
  34. m[v] = ++n;
  35.  
  36. graph[m[u]][m[v]] = 1;
  37. graph[m[u]][m[u]] = 0;
  38. graph[m[v]][m[v]] = 0;
  39. }
  40.  
  41. for(int k = 1; k <= n; k++)
  42. for(int i = 1; i <= n; i++)
  43. for(int j = 1; j <= n; j++)
  44. graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]);
  45.  
  46. double s = 0.0;
  47.  
  48. for(int i = 1; i <= n; i++)
  49. for(int j=1; j<=n; j++)
  50. s += graph[i][j];
  51. //cout<<s<<endl;
  52. s /= (double)n*(n-1);
  53. //cout<<s<<endl;
  54. printf("Case %d: average length between pages = %.3lf clicks\n",testCase++,s);
  55. }
  56. return 0;
  57. }
Success #stdin #stdout 0s 7208KB
stdin
1 100 100 2 2 99 99 3 3 98 98 4 4 97 97 5 5 96 96 6 6 95 95 7 7 94 94 8 8 93 93 9 9 92 92 10 10 91 91 11 11 90 90 12 12 89 89 13 13 88 88 14 14 87 87 15 15 86 86 16 16 85 85 17 17 84 84 18 18 83 83 19 19 82 82 20 20 81 81 21 21 80 80 22 22 79 79 23 23 78 78 24 24 77 77 25 25 76 76 26 26 75 75 27 27 74 74 28 28 73 73 29 29 72 72 30 30 71 71 31 31 70 70 32 32 69 69 33 33 68 68 34 34 67 67 35 35 66 66 36 36 65 65 37 37 64 64 38 38 63 63 39 39 62 62 40 40 61 61 41 41 60 60 42 42 59 59 43 43 58 58 44 44 57 57 45 45 56 56 46 46 55 55 47 47 54 54 48 48 53 53 49 49 52 52 50 50 51 51 1 0 0
0 0
stdout
Case 1: average length between pages = 50.000 clicks