Cod sursa(job #66026)

Utilizator filipbFilip Cristian Buruiana filipb Data 14 iunie 2007 16:36:35
Problema Sate Scor Ascuns
Compilator cpp Status done
Runda Marime 0.8 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define mp make_pair
#define pb push_back
#define f first
#define s second
#define NMax 305

int N, S[NMax], X, Y;
vector< pair<int, int> > G[NMax];

int main(void)
{
	int M, u, v, D, i;
    vector< pair<int, int> >::iterator it;
    
	freopen("sate.in", "r", stdin);
    freopen("sate.out", "w", stdout);

    scanf("%d %d %d %d", &N, &M, &X, &Y);
    for (; M; M--)
    {
    	scanf("%d %d %d", &u, &v, &D);

        G[u].pb( mp(v, D) );
    }

    for (S[1] = 0, i = 2; i <= N; i++) S[i] = -1;    

    for (i = 1; i <= N; i++)
    {
    	if (S[i] == -1) continue;
        
		for (it = G[i].begin(); it != G[i].end(); it++)
            S[it->f] = S[i] + it->s;
    }

    printf("%d\n", S[Y] - S[X]);

	return 0;
}