Cod sursa(job #2178807)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 19 martie 2018 18:41:54
Problema Tunelul groazei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

#define Nmax 257
#define EPS 1e-6

using namespace std;

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

int N, M;
double D[Nmax], S[Nmax][Nmax];

int main()
{
    fin >> N >> M;
    while(M--)
    {
        int x, y, c;
        fin >> x >> y >> c;
        S[x][x]++;
        S[x][y]--;
        S[x][N + 1] += c;
        S[y][y]++;
        S[y][x]--;
        S[y][N + 1] += c;
    }
    for(int i = 1; i < N; i++)
    {
        for(int j = i + 1; j <= N + 1; j++)
            S[i][j] /= S[i][i];
        S[i][i] = 1;
        for(int j = i + 1; j < N; j++)
        {
            for(int k = i + 1; k <= N + 1; k++)
                S[j][k] -= S[i][k] * S[j][i];
            S[j][i] = 0;
        }
    }
    for(int i = N - 1; i >= 1; i--)
    {
        D[i] = S[i][N + 1];
        for(int j = i + 1; j < N; j++)
            D[i] -= S[i][j] * D[j];
    }
    fout << D[1] << "\n";
    return 0;
}