Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #define INF 1000000007
  4.  
  5. using namespace std;
  6. ifstream f("dijkstra.in");
  7. ofstream g("dijkstra.out");
  8.  
  9. int viz[50005], dist[50005];
  10. vector<int> graph[50005];
  11. vector<int> graphC[50005];
  12.  
  13. void Dijkstra (int n)
  14. {
  15. for(int i=2; i<=n; i++)
  16. dist[i] = INF;
  17.  
  18. int idx;
  19. for(int t=1; t<=n; t++)
  20. {
  21. int mini = INF;
  22.  
  23. for(int i=1; i<=n; i++)
  24. if(!viz[i] && dist[i] < mini)
  25. {
  26. mini = dist[i];
  27. idx = i;
  28. }
  29. viz[idx] = 1;
  30. int dim = graph[idx].size();
  31. for(int i=0; i<dim; i++)
  32. {
  33. int vecin = graph[idx][i];
  34. int cost = graphC[idx][i];
  35. if(dist[idx] + cost < dist[vecin])
  36. dist[vecin] = dist[idx] + cost;
  37. }
  38. }
  39. }
  40. int main ()
  41. {
  42. int n, m, a, b, c;
  43. f>>n>>m;
  44. dist[1] = 0;
  45.  
  46. for(int i=1; i<=m; i++)
  47. {
  48. f>>a>>b>>c;
  49. graph[a].push_back(b);
  50. graphC[a].push_back(c);
  51. }
  52.  
  53. Dijkstra(n);
  54. for(int i=2; i<=n; i++)
  55. {
  56. if(dist[i] == INF)
  57. g<<0;
  58. else
  59. g<<dist[i]<<" ";
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement