Cod sursa(job #2129257)

Utilizator MotoAMotoi Alexandru MotoA Data 12 februarie 2018 17:39:37
Problema Tunelul groazei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("tunel.in");
ofstream g("tunel.out");
int n,m;
double M[256][257],x[256];
void gauss()
{
    for(int i = 1; i < n; i++)
    {
        for(int j = i; j <= n + 1; j++)
            M[i][j] /= M[i][i];
        for(int j = i + 1; j < n; j++)
        {
            for(int k = i + 1; k <= n + 1; k++)
                M[j][k] -= M[i][k] * M[j][i];
            M[j][i] = 0;
        }
    }
}

void solutie(){
 for(int i=n-1;i>0;i--){
  x[i]=M[i][n+1];
   for(int j=n-1;j>i;j--)
     x[i]-=M[i][j]*x[j];
 }

}

void citire()
{
    int a,b,d;
    f >> n >> m;
    for(int i = 1; i <= m; i++)
    {
        f >> a >> b >> d;
        M[a][a]++;
        M[b][b]++;
        M[a][b]--;
        M[b][a]--;
        M[a][n + 1] += d;
        M[b][n + 1] += d;
    }
}
int main()
{
    citire();
    gauss();
    solutie();
    g<<fixed<<setprecision(3)<<x[1];
}