Cod sursa(job #1396525)

Utilizator katakonst94Pirvu Constantin Catalin katakonst94 Data 22 martie 2015 17:22:03
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <queue>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
long c[31000];
int y;
vector <pair<int,int> >graf[31000];
void bfs(int nod,int m,long o[])
{

queue <int> que;
que.push(nod);
queue < int>::size_type s;
char vis[31000]={};
o[nod]=0;
s=que.size();
while(s)
{

int nd=que.front();
for(int i=0;i<graf[nd].size();i++)
{
    if(vis[graf[nd][i].second]==0){
      que.push(graf[nd][i].second);
      o[graf[nd][i].second]=o[nd]+graf[nd][i].first;
     }
vis[graf[nd][i].second]=1;
    }
que.pop();
s=que.size();
}
}
int main()
{
    int n,m,x;
f>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{

    int m1,m2,c;
    f>>m1>>m2>>c;
     graf[m1].push_back(make_pair(c, m2));
     graf[m2].push_back(make_pair(-c, m1));
}
for(int i=1;i<=n;i++){
c[i]=1<<28;
}
bfs(x,n,c);
g<<c[y]<<"  ";
return 0;
}