Pagini recente » Cod sursa (job #272324) | Cod sursa (job #1285553) | Cod sursa (job #2821760) | Cod sursa (job #1178031) | Cod sursa (job #3281339)
#include<fstream>
#include<stack>
#include<vector>
using namespace std;
int v[30001];
int mat[100][100];
int distantex[20];
stack <int> s;
vector <int> graf[30001];
void fill(int x){
s.push(x);
while(!s.empty()){
int top=s.top();
s.pop();
for(int vecin:graf[top]){
if(v[vecin]==0){
distantex[vecin]=distantex[top]+mat[top][vecin];
v[vecin]=1;
s.push(vecin);
}
}
}
}
int main(){
ifstream fin("sate.in");
ofstream fout("sate.out");
int n, m, x, y, i, j, d;
fin>>n>>m>>x>>y;
for(int i=1; i<=m; i++){
fin>>i>>j>>d;
graf[i].push_back(j);
graf[j].push_back(i);
mat[i][j]=d;
mat[j][i]=-d;
}
v[x]=1;
fill(x);
fout<<distantex[y]-1;
return 0;
}