Nu aveti permisiuni pentru a descarca fisierul grader_test15.ok

Cod sursa(job #353347)

Utilizator PopaStefanPopa Stefan PopaStefan Data 4 octombrie 2009 20:14:04
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream.h>

ifstream fin("sate.in");
ofstream fout("sate.out");

int n,m,x,y,c[30001],d[30001];

struct lista
  {int x,d;
  };
lista a[30001][30001];


void parcurgere()
{int p,u,aux,i;
c[1]=x;
d[x]=0;
p=u=1;
while(p<=u)
  {aux=c[p];
   p++;
   for(i=1;i<=a[aux][0].x;i++)
     if(d[a[aux][i].x]==0)
      {u++;
       c[u]=a[aux][i].x;
       if(a[aux][i].x>=aux) d[a[aux][i].x]=a[aux][i].d+d[aux];
          else d[a[aux][i].x]=d[aux]-a[aux][i].d;
      }
  }
fout<<d[y];


}

int main()
{fin>>n>>m>>x>>y;
int xx,yy,dd;
for(int i=1;i<=m;i++)
  {fin>>xx>>yy>>dd;
   a[xx][0].x++;
   a[xx][a[xx][0].x].x=yy;
   a[xx][a[xx][0].x].d=dd;
   a[yy][0].x++;
   a[yy][a[yy][0].x].x=xx;
   a[yy][a[yy][0].x].d=dd;
  }
parcurgere();
fin.close();
fout.close();
return 0;
}