Cod sursa(job #1309695)

Utilizator corul_barbatescUNIBUC Kira96 lockmihai corul_barbatesc Data 5 ianuarie 2015 22:46:08
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<vector>
#define NM 31000
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
struct el{int cos; int des;};
el l;
vector<el> v[NM];
int a,b,i,n,m,x,y,sol,cost,viz[NM];
void dfs(int x)
{
    viz[x]=1;
    vector<el>::iterator it;
    if(sol)
        return;
    if(x==y)
    {
        sol=cost;
        return ;
    }
    for(it=v[x].begin();it!=v[x].end();++it)
        if(!viz[(*it).des])
        {
            cost+=(*it).cos;
            dfs((*it).des);
            if(sol)
                return;
            cost-=(*it).cos;
        }
}
int main()
{
    f>>n>>m>>x>>y;
    while(m--)
    {
        f>>a>>l.des>>l.cos;
        if(a>l.des)
            swap(a,l.des);
        v[a].push_back(l);
        l.cos=-l.cos;
        swap(a,l.des);
        v[a].push_back(l);
    }
    cost=0;
    dfs(x);
    g<<sol;
    return 0;
}