Cod sursa(job #294382)

Utilizator deltaDumitrache Mircea delta Data 2 aprilie 2009 14:58:23
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#define MAX 1001
using namespace std;


int n, m;
int x, y;
int distanta;
int c[MAX][MAX];
int p[MAX];
void Df(int, int);


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

int main()
{
    fin >> n >> m;
    fin >> x >> y;
    int xx, yy, cost;
    for(int i = 1; i<= m; i++)
    {
        fin >> xx >> yy >> cost;
        c[xx][yy] = cost;
        c[yy][xx] = cost;
    }
    
    Df(x, 0);
    fout << distanta << "\n";
    
         
    fin.close();
    fout.close();
    return 0;
}

void Df(int x, int d)
{
    if (x == y)
    {
        distanta = d;
        return;
    }    
    for (int i = 1; i<= n; i++)
    {
        if(c[x][i] && !p[i])
        {
            if(x < i) d+=c[x][i];
            else d-=c[x][i];
            p[i] = 1;
            Df(i, d);
            if(x < i) d-=c[x][i];
            else d+=c[x][i];
            p[i] = 0;
        }
    }
}