Pagini recente » Cod sursa (job #3251372) | Cod sursa (job #12064) | Cod sursa (job #2862184) | Cod sursa (job #2584840) | Cod sursa (job #1502940)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int MAX = 30005;
const int MOD = 25;
int poz = MOD - 1;
char buffer[MOD];
vector < pair <int ,int > > G[MAX];
deque < int > lx;
int D[MAX];
inline void parsare(int &x){
while(!isdigit(buffer[poz])){
poz ++;
if(poz == MOD){
poz = 0;
fin.read(buffer,MOD);
}
}
x = 0;
while(isdigit(buffer[poz])){
x = x * 10 + (buffer[poz] - '0');
poz ++;
if(poz == MOD){
poz = 0;
fin.read(buffer,MOD);
}
}
}
inline void bfs( )
{
int x;
while(!lx.empty()){
x = lx.front();
lx.pop_front();
for(int i = 0; i < G[x].size(); i ++){
if(D[G[x][i].first] == 0){
D[G[x][i].first] = D[x] + G[x][i].second;
lx.push_back(G[x][i].first);
}
}
}
}
int main()
{
int n,m,s,f,x,y,d;
parsare(n); parsare(m); parsare(s); parsare(f);
for(int i = 0 ; i < m; i ++){
parsare(x); parsare(y); parsare(d);
G[x].push_back(make_pair(y,d));
G[y].push_back(make_pair(x,-d));
}
lx.push_back(s);
bfs();
fout << D[f] ;
return 0;
}