Pagini recente » Cod sursa (job #22636) | Cod sursa (job #619066) | Cod sursa (job #320092) | Cod sursa (job #1746977) | Cod sursa (job #2699730)
#include <bits/stdc++.h>
using namespace std;
ifstream r("tunel.in");
ofstream w("tunel.out");
int n, m;
double g[303][303];
void scadere(int a, int b, double t){
for(int i=1;i<=n;i++){
g[a][i]-=t*g[b][i];
}
}
void gauss(){
double x;
for(int i=1;i<n;i++){
x=g[i][i];
for(int j=1;j<=n;j++){
g[i][j]/=x;
}
for(int j=1;j<=n;j++){
if(j!=i){
scadere(j, i, g[j][i]);
}
}
}
}
void push(int a, int b, int t){
if(a==n){
return;
}
g[a][a]++;
g[a][n]+=t;
if(b!=n){
g[a][b]--;
}
}
int main()
{
r>>n>>m;
for(int i=0;i<m;i++){
int x, y, t;
r>>x>>y>>t;
push(x, y, t);
push(y, x, t);
}
gauss();
w<<fixed<<setprecision(3)<<g[1][n];
return 0;
}