abdukodir

PUTNIK

Nov 28th, 2013
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<set>
  4. #include<map>
  5. #include<queue>
  6. #include<vector>
  7. #include<string.h>
  8. #include<algorithm>
  9. #include <iomanip>
  10.  
  11. #define sc scanf
  12. #define pr printf
  13. #define fr first
  14. #define se second
  15. #define pb push_back
  16. #define mp make_pair
  17. using namespace std;
  18. const int MN = 1510;
  19. const int INF = 10000010;
  20. const double eps = 1e-12;
  21.  
  22. int n, len[MN][MN], d[MN][MN];
  23.  
  24. main(){
  25. //freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
  26. sc("%d", &n);
  27. for(int i=1; i<=n; i++){
  28. for(int j=1; j<=n; j++){
  29. sc("%d", len[i]+j);
  30. }
  31. }
  32. d[1][2] = len[1][2];
  33. d[2][1] = len[2][1];
  34. int ans = INF;
  35. for(int i=3; i<=n; i++){
  36. d[i][i-1] = d[i-1][i] = INF;
  37. for(int j=1; j<i-1; j++){
  38. d[i][j] = d[i-1][j]+len[i][i-1];
  39. d[j][i] = d[j][i-1]+len[i-1][i];
  40. d[i][i-1] = min(d[i][i-1], d[j][i-1]+len[i][j]);
  41. d[i-1][i] = min(d[i-1][i], d[i-1][j]+len[j][i]);
  42. }
  43. }
  44. for(int j=1; j<n; j++){
  45. ans = min(ans, min(d[n][j], d[j][n]));
  46. }
  47. pr("%d\n", ans);
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment