Pagini recente » Cod sursa (job #1616238) | Cod sursa (job #1207042) | Cod sursa (job #2904417) | Cod sursa (job #2520645) | Cod sursa (job #1194138)
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#define mx 30000
#define inf 2147483647
using namespace std;
int n,m,x,y;
vector< pair<int,int> > G[mx];
int best[mx];
ifstream f("sate.in");
ofstream g("sate.out");
void Initialisation()
{
for(int i=0;i<mx;i++)
{
best[i]=0;
}
}
void Read()
{
f>>n>>m>>x>>y;
Initialisation();
for(int i=0;i<m;i++)
{
int a,b,d;
f>>a>>b>>d;
G[a].push_back( make_pair(b,d) );
G[b].push_back( make_pair(a,-d) );
}
}
void BFSit(int start, int fin)
{
queue<int> Q;
int curent=-1;
for(Q.push(start);Q.size() && (curent!=fin);Q.pop())
{
curent=Q.front();
for(int i=0;i<G[curent].size();i++)
{
if(best[ G[curent][i].first ]==0)
{
best[G[curent][i].first]=best[curent]+G[curent][i].second;
Q.push(G[curent][i].first);
}
}
}
}
void BFSrec(int curent)
{
for(int i=0;i<G[curent].size();i++)
{
if(best[ G[curent][i].first ]==0)
{
best[G[curent][i].first]=best[curent]+G[curent][i].second;
BFSrec(G[curent][i].first);
}
}
}
int main()
{
Read();
BFSit(x,y);
g<<best[y];
queue<int> aux;
aux.push(1);
aux.push(2);
aux.push(3);
cout<<aux.front()<<aux.back();
aux.pop();
cout<<aux.front()<<aux.back();
return 0;
}