Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #pragma comment(linker,"/STACK:100000000000,100000000000")
  2.  
  3. #include <bits/stdc++.h>
  4.  
  5. #define ll long long
  6. #define pb push_back
  7. #define mp make_pair
  8. #define D double
  9. #define pi pair<int,int>
  10. #define si set <pi>
  11. #define F first
  12. #define S second
  13. #define forn(i,n) for (int(i)=0;(i)<(n);i++)
  14. #define forr(i,x,y) for (int(i)=(x);(i)<=(y);i++)
  15. #define ford(i,x,y) for (int(i)=(x);(i)>=(y);i--)
  16. #define rev reverse
  17. #define in insert
  18. #define er erase
  19. #define all(n) (n).begin(),(n).end()
  20. #define graf vector<vector<pi> >
  21. #define graf1 vector<vector<ll> >
  22. #define sqr(a) (a)*(a)
  23. #define file freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
  24. #define y1 asdadasdasd
  25.  
  26. const int INF=1e9;
  27. const D cp=2*asin(1.0);
  28. const D eps=1e-9;
  29. const ll mod=1000000000;
  30.  
  31. using namespace std;
  32.  
  33. int n; // number of vertex
  34. int s; // start node
  35. int a[101][101]; // graph
  36. int d[101]; // minimal distance from start vertex to all another nodes
  37. char used[101];
  38.  
  39. int main()
  40. {
  41. cin.tie(0);
  42. ios_base::sync_with_stdio(false);
  43. cin>>n;
  44. forn(i,n)
  45. forn(j,n)
  46. {
  47. cin>>a[i][j];
  48. if (a[i][j]==-1) a[i][j]=INF; // there's no road from i to j
  49. }
  50. cin>>s;
  51. forn(i,n) d[i]=INF,used[i]=false;
  52. d[s]=0;
  53. forn(k,n)
  54. {
  55. int _min=INF,x=-1;
  56. forn(i,n)
  57. if (!used[i] && _min>d[i]) _min=d[i],x=i;
  58. if (x==-1) break;
  59. used[x]=true;
  60. forn(i,n)
  61. if (d[i]>d[x]+a[x][i]) d[i]=d[x]+a[x][i];
  62. }
  63. forn(i,n) cout<<((d[i]==INF)?-1:d[i])<<' ';
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement