Pagini recente » Cod sursa (job #2810153) | Cod sursa (job #2168514) | Cod sursa (job #3275008) | Cod sursa (job #1971326) | Cod sursa (job #660645)
Cod sursa(job #660645)
#include<fstream>
#define Nmax 1001
using namespace std;
long long v[Nmax][Nmax], c[Nmax][Nmax], n, m, i, start, x, y;
long long viz[Nmax], cost[Nmax], C[Nmax], d, stop;
ifstream fin("sate.in");
ofstream fout("sate.out");
void BFS()
{
int ultim, prim;
ultim=prim=0;
C[0]=start;
viz[start]=1;
while(prim<=ultim)
{
x=C[prim++];
for(i=1;i<=v[x][0];i++)
if(!viz[v[x][i]])
{
viz[v[x][i]]=1;
C[++ultim]=v[x][i];
if(v[x][i]>x)
cost[v[x][i]]=cost[x]+c[x][v[x][i]];
else
cost[v[x][i]]=cost[x]-c[x][v[x][i]];
if(v[x][i]==stop)
prim=ultim+1;
}
}
}
int main()
{
fin>>n>>m>>start>>stop;
for(i=1;i<=m;i++)
{
fin>>x>>y>>d;
v[x][++v[x][0]]=y;
v[y][++v[y][0]]=x;
c[x][y]=c[y][x]=d;
}
BFS();
fout<<cost[stop]<<'\n';
fin.close();
fout.close();
return 0;
}