Advertisement
saske_7

uva_423(mri).cpp

Nov 15th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std ;
  3.  
  4.  
  5. #define M 1000
  6. #define pii pair<int , int >
  7. #define mp make_pair
  8. #define pf printf
  9. #define sf scanf
  10. #define sf1(a ) scanf("%d",&a)
  11. #define pb push_back
  12. #define sf2(a, b) scanf("%d%d",&a ,&b)
  13. #define rep(i,n) for(i = 0 ; i< n ;i++ )
  14.  
  15. vector<int > data  ;
  16. vector<int > stk  ;
  17. const int mx = 1005000000;
  18.  
  19. int fastscan(){
  20. int ret, num = 0 , negetive = -1    ;
  21. char ch ;
  22.     //getchar();
  23.     while(ch = getchar()){
  24.      // pf("here");
  25.     if(ch != ' ') break ;
  26.  
  27.     }
  28.     if(ch == '-' ) negetive = 1 ;
  29.     else    num = 10* num + ch -'0';
  30.     if(ch ==  'x') {
  31.     getchar();
  32.     return -1 ;
  33.  
  34.     }
  35.     while(1){
  36.         ch =  getchar();
  37.         if(ch ==  '\n' || ch == ' ' ) break ;
  38.         num = 10* num + ch -'0';
  39.  
  40.     }
  41.     if(negetive ==  1) {num *= -1 ;
  42.    // pf("negetive %d\n",num );
  43.     }
  44.     return num  ;
  45. }
  46.  
  47.  
  48. int arr[M][M];
  49.  
  50. void warshall(int arr[][M] ,int num ){
  51.    int i , j , k ;
  52.    for(k =1 ; k <= num ;k++){
  53.       for(i = 1 ;i<= num ;i++ ){
  54.          for(j =  1;j<= num ; j++)
  55.          {
  56.             if(arr[i][k] + arr[k][j] <= arr[i][j]){
  57.                arr[i][j] = arr[i][k] + arr[k][j] ;
  58.  
  59.           }
  60.  
  61.          }
  62.    }
  63. }
  64.  
  65.  
  66. return ;
  67. }
  68.  
  69.  
  70.  
  71. int main(){
  72. //freopen("in.txt","r",stdin);
  73. //freopen("out.txt","w",stdout);
  74.  
  75.     int  n , i , j ,  k , cs= 0;
  76.     while(scanf("%d",&n) == 1 ){
  77.       cs++;
  78.         rep(i , M)rep(j , M ) arr[i][j] = mx;
  79.     getchar();
  80.  
  81.         for(i = 2;i <= n ;i++){
  82.             for(j =  1 ; j< i ; j++ )
  83.             {
  84.                 k = fastscan();
  85.                 if( k  == -1 ) arr[i][j] =  arr[j][i] =  mx  ;
  86.                 else arr[i][j] = arr[j][i] =  k ;
  87.  
  88.             }
  89.  
  90.         }
  91.       warshall(arr, n);
  92.  
  93.  
  94.     rep(i , n+1 ) arr[i][i] = 0;
  95.  /* if(cs == 45)
  96.     rep(i, n ){
  97.       rep(j , n )
  98.       pf("%d ",arr[i+1][j+1]);
  99.       pf("\n");
  100.     }
  101.    // */
  102.  
  103.         long long sum = 0  ;
  104.         int max = 0 ;
  105.  
  106.         for(i = 1 ; i<= n ;i++){
  107.  
  108.     //  pf("here %d\n",arr[1][i]);
  109.             if(arr[1][i] >= max){
  110.         max =  arr[1][i];
  111.         //  cout << max << endl;
  112.             }
  113.         }
  114.         if(max ==  mx)
  115.       pf("0\n");
  116.     else
  117.         pf("%d\n", max);
  118.     }
  119.  
  120.     return 0 ;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement