Cod sursa(job #1002629)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 28 septembrie 2013 12:52:33
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#include<iostream>
#include<vector>
using namespace std;
vector<pair<int,int> >v[30002];
FILE *f=fopen("sate.in","r"),*g=fopen("sate.out","w");
int n,m,x,y,i,a,b,c,viz[30002],q[50000],dist[30002],p,u,d;
int main()
{
    fscanf(f,"%d %d %d %d",&n,&m,&x,&y);
    for(i=1;i<=m;i++)
    {
        fscanf(f,"%d %d %d",&a,&b,&c);
        v[a].push_back(make_pair(b,c));
        v[b].push_back(make_pair(a,-c));
    }
    p=u=1;
    q[p]=x;
    viz[x]=1;
    dist[x]=0;
    while(p<=u)
    {
        int k=q[p];
        for(i=0;i<v[k].size();i++){
            d=v[k][i].second;
            c=v[k][i].first;
            if(viz[c]==0)
            {
                u++;
                q[u]=c;
                viz[c]=1;
                dist[c]=dist[k]+d;
            }
        }
        if(dist[y]!=0)
            break;
        p++;
    }
    fprintf(g,"%d",dist[y]);
    return 0;
}