Cod sursa(job #606590)

Utilizator SpiderManSimoiu Robert SpiderMan Data 4 august 2011 22:55:40
Problema Tunelul groazei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
# include <cstdio>
# include <vector>
using namespace std;

const char *FIN = "tunel.in", *FOU = "tunel.out";
const int MAX = 260;

double V[MAX][MAX];
int N, M;

int main (void) {
    freopen (FIN, "r", stdin);

    scanf ("%d %d", &N, &M);
    for (int i = 0, x, y, z; i < M; ++i) {
        scanf ("%d %d %d", &x, &y, &z), --x, --y;
        ++V[x][x], ++V[y][y], --V[x][y], --V[y][x];
        V[x][N] += 1.0 * z, V[y][N] += 1.0 * z;
    }
    for (int i = 0; i <= N + 1; ++i) V[N - 1][i] = 0;
    V[N - 1][N - 1] = 1;
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < N; ++j) {
            if (i == j) continue;
            for (int k = N; k >= i; --k)
                V[j][k] -= V[j][i] / V[i][i] * V[i][k];
        }
    fprintf (fopen (FOU, "w"), "%lf", V[0][N] / V[0][0]);
}