fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n, inf=1e9;
  6. cin>>n;
  7. int a[n][n]={};
  8. for(int i=0; i<n; i++)
  9. for (int j=0; j<n ; j++){
  10. cin>>a[i][j];
  11. if(a[i][j]==0) a[i][j]=inf;
  12. }
  13. for (int k=0; k<n; k++)
  14. for(int i=0; i<n; i++)
  15. for (int j=0; j<n ; j++)
  16. a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
  17. int mn=1;
  18. for(int i=0; i<n; i++)
  19. for (int j=0; j<n ; j++)
  20. mn=min(mn,a[i][j]);
  21. for (int i=0; i<n; i++){
  22. if(a[i][i]<0) mn=-1;
  23. }
  24. cout<<mn<<endl;
  25. return 0;
  26. }
Success #stdin #stdout 0.01s 5280KB
stdin
3
0 42 18468 
6335 0 26501 
19170 15725 0
stdout
1