Cod sursa(job #1509540)

Utilizator DenisaEnacheEnache Denisa DenisaEnache Data 24 octombrie 2015 00:58:02
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,x,y;
long long viz[30001],s;
struct nod
{
    int info,dist;
    nod *urm;
};nod *prim, *a[30001];
void ADD(nod *&prim, int x,int d)
{
    nod *q=new nod;
    q->info=x;
    q->dist=d;
    q->urm=prim;
    prim=q;
}
void citire()
{
    fin>>n>>m>>x>>y;
    int c1,c2,d;
    for(int i=1;i<=m;i++)
    {
        fin>>c1>>c2>>d;
        ADD(a[c1],c2,d);
        ADD(a[c2],c1,d);

    }
}
void DFS(int x)
{
    viz[x]=1;
    for(nod *p=a[x];p!=0;p=p->urm)
   {if(viz[p->info]==0 && viz[y]==0)
       {
           if(p->info < x) s=s-p->dist;
           else s=s+p->dist;
           DFS(p->info);

       }
       if(viz[y]!=0) break;}
}
int main()
{
    citire();
    DFS(x);
    fout<<s<<" ";
    return 0;
}