Pagini recente » Cod sursa (job #3227205) | Cod sursa (job #2657283) | Cod sursa (job #2252800) | Cod sursa (job #1388070) | Cod sursa (job #709358)
Cod sursa(job #709358)
#include <fstream>
#include <cstdio>
using namespace std;
const int N=261;
double v[N][N];
int n;
ifstream in("tunel.in");
void reduce(double a[],double b[],double x)
{
for (int i=1;i<=n;i++)
a[i]-=b[i]*x;
}
double gauss()
{
double x;
for (int i=1;i<n;i++)
{
x=v[i][i];
for (int j=1;j<=n;j++)
v[i][j]/=x;
for (int j=1;j<=n;j++)
if (i!=j)
reduce(v[j],v[i],v[j][i]);
}
return v[1][n];
}
void work(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()
{
freopen("tunel.out","w",stdout);
int m,x,y,c;
in>>n>>m;
while (m--)
{
in>>x>>y>>c;
work(x,y,c);
work(y,x,c);
}
printf("%.6lf\n",gauss());
return 0;
}