Pagini recente » Cod sursa (job #1815032) | Cod sursa (job #761531) | Istoria paginii runda/preoji_cl11_12_lspvs/clasament | Cod sursa (job #2954042) | Cod sursa (job #777775)
Cod sursa(job #777775)
#include <fstream>
#include <vector>
#include <queue>
#define MAX 30005
using namespace std;
vector< pair <int , int > > v[MAX];
int dist[MAX], n, m, x, y;
void bfs()
{
int nod, dest;
dist[x] = 0;
queue<int> q; q.push(x);
while(!q.empty())
{
nod = q.front(); q.pop();
for(int i = 0; i < v[nod].size(); i++)
{
dest = v[nod][i].first;
if(!dist[dest])
{
dist[dest] = dist[nod] + v[nod][i].second;
q.push(dest);
}
}
if(dist[y])
break;
}
}
int main()
{
int a, b, c;
ifstream in("sate.in"); in>>n>>m>>x>>y;
for(int i = 1; i <= m; i++)
{
in>>a>>b>>c;
v[a].push_back(make_pair(b, c));
v[b].push_back(make_pair(a, -c));
} in.close();
bfs();
ofstream out("sate.out"); out<<dist[y]; out.close();
return 0;
}