Pagini recente » Cod sursa (job #340528) | Cod sursa (job #48921) | Cod sursa (job #47595) | Cod sursa (job #924376) | Cod sursa (job #1693319)
#include <fstream>
using namespace std;
ifstream in("tunel.in");
ofstream out("tunel.out");
const int N = 300;
int n, m;
double gauss[N][N];
void reduce(int x, int y, double c) {
int i;
for(i = 0; i <= n; i++) {
gauss[x][i] -= c * gauss[y][i];
}
}
void solveGauss() {
int i, j;
double x;
for(i = 1; i <= n; i++) {
x = gauss[i][i];
for(j = 0; j <= n; j++) {
gauss[i][j] /= x;
}
for(j = 1; j <= n; j++) {
if(j != i) {
reduce(j, i, gauss[j][i]);
}
}
}
}
void add(int x, int y, int c) {
gauss[x][y]--;
gauss[x][x]++;
gauss[x][0] += c;
}
int main() {
int i, x, y, c;
in >> n >> m;
n--;
for(i = 1; i <= m; i++) {
in >> x >> y >> c;
add(x, y, c);
add(y, x, c);
}
solveGauss();
out << gauss[1][0] << '\n';
return 0;
}