Pagini recente » Cod sursa (job #1043315) | Cod sursa (job #1802728) | Cod sursa (job #73065) | Cod sursa (job #246415) | Cod sursa (job #806920)
Cod sursa(job #806920)
#include <fstream>
#include <cstdio>
using namespace std;
ifstream fin ("tunel.in");
#define MAXN 300
int n, m;
double v[MAXN][MAXN];
void reduce(int x, int y, double c) {
for (int i = 1; i <= n; ++i)
v[x][i] -= c * v[y][i];
}
void gauss() {
int i, j;
double x;
for (i = 1; i < n; ++i) {
x = v[i][i];
for (j = 1; j <= n; ++j)
v[i][j] /= x;
for (j = 1; j <= n; ++j)
if (j != i)
reduce (j, i, v[j][i]);
}
}
void add(int x, int y, int c) {
if (x == n)
return;
v[x][x]++;
v[x][n] += c;
if (y != n)
v[x][y]--;
}
int main() {
int i, x, y, c;
freopen("tunel.out", "w", stdout);
fin >> n >> m;
for (i = 1; i <= m; ++i) {
fin >> x >> y >> c;
add(x, y, c);
add(y, x, c);
}
gauss();
printf ("%.3f", v[1][n]);
return 0;
}