Cod sursa(job #669118)

Utilizator raduiris94Alexa Radu raduiris94 Data 26 ianuarie 2012 10:12:45
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
#include <cstdlib>
#include<bitset>
#define DN 100024
using namespace std;
bitset <DN> viz;
int a[4][DN], i, j, n, m, x, y, mem; bool ok;
long long dis;
int main()
{
	freopen("sate.in", "r", stdin);
	freopen("sate.out", "w", stdout);
	scanf("%d%d%d%d", &n, &m, &x, &y);
	for(i=1; i<=m; i++)
	{
		scanf("%d%d%d", &a[1][i], &a[2][i], &a[3][i]);
		if(a[1][i]==x&&ok==0)
		{
			mem=a[2][i];
			dis=a[3][i];
			viz[i]=1;
			ok=1;
		}
	}
	for(i=1; i<=m; i++)
	{
		for(j=1; j<=m; j++)
		{
			if((a[2][j]==mem||a[1][j]==mem)&&viz[j]==0)
			{
				viz[j]=1;
				if(mem==a[2][j])
				{
					dis=dis-a[3][j];
					mem=a[1][j];
				}
				else
					if(mem==a[1][j])
					{
						dis=dis+a[3][j];
						mem=a[2][j];
					}
				break;
			}
		}
		if(a[1][j]==y||a[2][j]==y)
			break;
	}
	printf("%lld", dis);
}