Cod sursa(job #1824365)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 7 decembrie 2016 19:33:50
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define M 100056

using namespace std;

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

vector <int> A[M];
vector <int> cost[M];
queue<int> coada;
int n,m,i,j,t,l,x,y,el,G[M],sum=0;
void lee(int x)
{
    coada.push(x);
    while(!coada.empty())
    {
        el=coada.front();
        coada.pop();
        for(int k=0;k<G[el];k++)
        {
            if(A[A[el][k]].size()>0)
            {
                sum=sum+cost[el][k];
                coada.push(A[el][k]);
            }
        }
        A[el].erase(A[el].begin(),A[el].end());
    }
}
int main()
{
    int x1,y1,cos;
    f>>n>>m>>x>>y;
    while(m!=0)
    {
        f>>x1>>y1>>cos;
        A[x1].push_back(y1);
        int inv=(-1)*cos;
        A[y1].push_back(x1);
        cost[x1].push_back(cos);
        cost[y1].push_back(inv);
        m--;
    }
    for(i=1;i<=n;i++)
        G[i]=A[i].size();
    lee(x);
    g<<sum;
}