Pagini recente » Cod sursa (job #2555633) | Cod sursa (job #3147570) | Cod sursa (job #2583619) | Cod sursa (job #2540175) | Cod sursa (job #2540195)
#include <fstream>
#include <queue>
#include <vector>
#include <string>
#include <cstdlib>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int NMAX = 30000;
long long viz[NMAX+5];
struct muchie
{
int nod, cost;
};
vector <muchie> G[NMAX+5];
queue <int>q;
string sir;
void bfs(int nod, int finish)
{
q.push(nod);
muchie aux;
viz[nod] =0;
while(!q.empty())
{
nod = q.front();
q.pop();
for(int i =0; i<G[nod].size();i++)
{
aux = G[nod][i];
if(viz[aux.nod] == -1)
{
viz[aux.nod] = viz[nod] + aux.cost;
if(aux.nod == finish)
return;
q.push(aux.nod);
}
}
}
}
int main()
{
int n, m, x, y, c, start, finish, i;
muchie aux;
fin>>n>>m>>start>>finish;
for(int i=1;i<=n;++i)
viz[i]=-1;
while(m--)
{
int u,v,w;
fin>>u>>v>>w;
G[u].push_back({v,w});
G[v].push_back({u,-w});
}
bfs(start, finish);
fout<<viz[finish]<<"\n";
return 0;
}