Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- vector<int>adj[10009];
- int main()
- {
- int n,m;
- cin>>n>>m;
- int u, v, w;
- for(int i=0; i<m ; i++)
- {
- cin>>u>>v>>w;
- adj[i].push_back(u);
- adj[i].push_back(v);
- adj[i].push_back(w);
- }
- int dist[1001];
- for(int i=0; i<=1000; i++)
- {
- dist[i]=1000000000;
- }
- // source and endpoint
- int source, endp;
- cin>>source>>endp;
- dist[source]=0;
- int j;
- for(int i=0; i<n-1; i++)
- {
- j=0;
- while(j<m)
- {
- u=adj[j][0];
- v=adj[j][1];
- w=adj[j][2];
- if(dist[u]+w<dist[v])
- {
- dist[v]=dist[u]+w;
- // parent er jonno
- // pa[ v ] = u;
- }
- j++;
- }
- }
- j=0;
- while(j<m)
- {
- u=adj[j][0];
- v=adj[j][1];
- w=adj[j][2];
- if(dist[u]+w<dist[v])
- {
- cout<<"Negative cycle"<<endl;
- return 0;
- }
- j++;
- }
- cout<<dist[endp]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement