Pagini recente » Cod sursa (job #1589858) | Cod sursa (job #2737526) | Cod sursa (job #1147469) | Cod sursa (job #1618678) | Cod sursa (job #981924)
Cod sursa(job #981924)
#include <fstream>
#include <vector>
#include <iomanip>
#define MAXN 260
#define EPS 0.000001
using namespace std;
ifstream f("tunel.in");
ofstream g("tunel.out");
int n,m,a,b,c;
double ec[MAXN][MAXN],aux,x;
int main()
{
int i,j,k,ii;
f>>n>>m;
for(i=1;i<=m;i++){
f>>a>>b>>c;
ec[a][a]--;
ec[b][b]--;
ec[a][n+1]+=c;
ec[b][n+1]+=c;
ec[a][b]++;
ec[b][a]++;}
for(i=1;i<=n+1;i++)
ec[n][i]=0;
ec[n][n]=1;
for(i=n,j=n;j>=1;j--,i--){
for(k=i;k>=1&&ec[k][j]<EPS&&ec[k][j]>(-EPS);k--);
if(k<1){
j--;
continue;}
x=ec[k][j];
for(ii=1;ii<=n+1;ii++){
aux=ec[i][ii];
ec[i][ii]=ec[k][ii];
ec[k][ii]=aux;}
for(k=i-1;k>=1;k--)
if(ec[k][j]>EPS||ec[k][j]<-EPS){
x=-ec[k][j]/ec[i][j];
for(ii=1;ii<=n+1;ii++)
ec[k][ii]+=x*ec[i][ii];}}
g<<fixed<<setprecision(8)<<-ec[i+1][n+1]/ec[i+1][1]<<'\n';
f.close();
g.close();
return 0;
}