unlucky_13

uva_423

Jun 23rd, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1. /*
  2.  Author                             :     unlucky_13
  3.  Probs_link                         :
  4.  Category                           : TOO easy to_int() function is nice
  5.  Algorithm_Used                     : FW
  6.  */
  7.  
  8. #include<cstdio>
  9. #include<sstream>
  10. #include<cstdlib>
  11. #include<cctype>
  12. #include<cmath>
  13. #include<algorithm>
  14. #include<set>
  15. #include<queue>
  16. #include<stack>
  17. #include<list>
  18. #include<iostream>
  19. #include<fstream>
  20. #include<numeric>
  21. #include<string>
  22. #include<vector>
  23. #include<cstring>
  24. #include<map>
  25. #include<iterator>
  26. #define LL long long int
  27. const long long int inf = 2147483647;
  28. //const int min=;
  29. //const int maxn=;
  30. using namespace std;
  31. int to_int(char *s){
  32.  
  33.     int ret=0 ;
  34.     for(int i=0;s[i]!='\0';i++){
  35.         ret = ret*10+(s[i]-'0') ;
  36.     }
  37.     //cout<<ret<<endl ;
  38.     return ret ;
  39.  
  40. }
  41.  
  42. int main() {
  43.  
  44.      freopen("C:\\Users\\Mazhar\\Desktop\\in.txt", "r", stdin);
  45.      int n ,dis[200][200];
  46.      char in[100] ;
  47.      while(scanf("%d",&n)!=EOF){
  48.          /*for(int i=0;i<=n;i++){
  49.              for(int j=0;j<=n;j++) dis[i][j]=inf ;
  50.          }*/
  51.          for(int i=2;i<=n;i++){
  52.              for(int j=1;j<i;j++){
  53.                  scanf("%s",in) ;
  54.                  if(in[0]=='x') dis[i][j] = dis[j][i] = inf ;
  55.                  else dis[i][j] = dis[j][i]= to_int(in)  ;
  56.              }
  57.          }
  58.  
  59.          //FW
  60.          for(int k=1;k<=n;k++){
  61.              for(int i=1;i<=n;i++){
  62.                  for(int j=1;j<=n;j++){
  63.                      if(dis[i][k]<inf && dis[k][j]<inf && dis[i][j]>dis[i][k]+dis[k][j]){
  64.                          dis[i][j] = dis[i][k]+dis[k][j] ;
  65.                          //cout<<"updated"<<endl ;
  66.                      }
  67.                  }
  68.              }
  69.          }
  70.          int ans = 0 ;
  71.          for(int i=2;i<=n;i++){
  72.             // cout<<dis[1][i]<<endl ;
  73.              ans = max(ans,dis[1][i]) ;
  74.          }
  75.  
  76.          printf("%d\n",ans) ;
  77.  
  78.  
  79.      }
  80.  
  81.  
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment