Cod sursa(job #828374)

Utilizator hellol30FMI Macovei Daniel hellol30 Data 3 decembrie 2012 18:18:23
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#define x first
#define y second
using namespace std;
int n,m,aa,bb,k,e,f,ok=1,aux,l=0;
vector< pair<int, int> > a[30004];
queue<int> Q;
void cit()
{freopen("sate.in","rt",stdin);
 freopen("sate.out","wt",stdout);
 scanf("%d%d%d%d",&n,&m,&aa,&bb);
 for(register int i=1;i<=m;i++)
	{scanf("%d%d%d",&k,&e,&f);
	 a[k].push_back(make_pair(e,f));
	 a[e].push_back(make_pair(k,f));
	}
}
int main()
{cit();
 Q.push(aa);
 while(!Q.empty() && ok)
	 {aux=Q.front();
	  for(unsigned int i=0;i<a[aux].size() && ok;++i)
		{if(a[aux][i].x != aa && aux!=bb)
			{if(Q.front()>a[aux][i].x) l-=a[aux][i].y;
			   else l+=a[aux][i].y;
			 Q.push(a[aux][i].x);
			} 
		 if(aux==bb) ok=0;
		}
	  aa=Q.front(); Q.pop();
	 }
 printf("%d\n",l);
 return 0;
}