Pagini recente » Cod sursa (job #1751666) | Cod sursa (job #886784) | Istoria paginii runda/sim01 | Denis S | Cod sursa (job #1052969)
#include<fstream>
#include<vector>
#include<queue>
#define maxn 30005
using namespace std;
ifstream fi("sate.in");
ofstream fo("sate.out");
vector <pair <int,int> > a[maxn];
queue <int> q;
int i,n,m,xa,ya,x,y,c;
bool d[maxn];
void swap2(int &a,int &b){
int aux=a; a=b; b=aux;
}
int main(){
fi>>n>>m>>xa>>ya;
if(xa>ya) swap2(xa,ya);
for(i=1;i<=m;i++)
{
fi>>x>>y>>c;
a[x].push_back(make_pair(y,c));
a[y].push_back(make_pair(x,-c));
}
d[xa]=1; q.push(xa); c=0;
while(d[ya]==0 && q.size())
{
x=q.front();
while(a[x].size()){
y=a[x].back().first;
if(!d[y])
{
c+=a[x].back().second;
d[y]=1;
q.push(y);
}
a[x].pop_back();
}
q.pop();
}
fo<<c;
fi.close();
fo.close();
return 0;
}