Cod sursa(job #729298)

Utilizator hiticas_abelhiticasabel hiticas_abel Data 29 martie 2012 14:26:45
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <bitset>
#define pb push_back

using namespace std;
const int lg=400100;

int n,m,st,sf;
vector<int>a[lg],dis[lg];
bitset<lg>viz;
int c[lg],cost[lg];

	ifstream f("sate.in");
	ofstream g("sate.out");

void citire()
{
int i, x, y, d;

f>>n>>m>>st>>sf;

for(i=1;i<=m;i++)
  {
	  f>>x>>y>>d;
	  a[x].pb(y);
	  a[y].pb(x);
	  dis[x].pb(d);
	  dis[y].pb(-d);
  }

}



void bfs(int nod)
{
int li, ls, n_v,nod1,i;
li=1; 
ls=1;
c[li]=nod;
cost[nod]=0;
   while(li<=ls )//&& cost[sf]==0)
   {
	   nod1=c[li];
	   n_v=a[nod1].size();
	   for(i=0;i<n_v;i++)
		   if(!viz[a[nod1][i]])
		   {
		   
		   ls++;
		   
		   c[ls]=a[nod1][i];
		   
		   viz[a[nod1][i]]=1;
		   
		   cost[a[nod1][i]]=cost[nod1]+dis[nod1][i];
		   
		   }
		   li++;
	   
	}
}

int main()
{int i;

	citire();
	bfs(st);

	//for(i=1;i<=n;i++)
		
	//g<<cost[i]<<" ";
	
	g<<cost[sf]<<"\n";
	
	return 0;
	

	
	
}