Cod sursa(job #1687158)

Utilizator DysKodeTurturica Razvan DysKode Data 12 aprilie 2016 18:23:05
Problema Algoritmul lui Gauss Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#include <iomanip>

using namespace std;

double v[310][310],k,ans[310];
int a,b,i,j,n,m,f;

ifstream fin("gauss.in");
ofstream fout("gauss.out");

int main()
{
    fin>>n>>m;
    if( m > n )
    {
        fout<<"Imposibil";
        return 0;
    }
    m++;
    for( i = 1 ; i <= n ; i++ )
        for( j = 1 ; j <= m ; j++ )
            fin>>v[ i ][ j ];

    for( f = 1 ; f <= n ; f++ )
    {
        k = v[ f ][ f ];
        for( i = f ; i <= m ; i++ )
            v[ f ][ i ] /= k;

        for( i = f + 1 ; i <= n ; i++ )
        {
            k = v[ i ][ f ];
            for( j = f ; j <= m ; j++ )
                v[ i ][ j ] -= k * v[ f ][ j ];
        }
    }

    for( i = n ; i >= 1 ; i-- )
    {
        k = 0;
        for( j = i + 1 ; j < m ; j++ )
            k += v[ i ][ j ] * ans[ j ];
        ans[ i ] = v[ i ][ j ] - k;
    }

    for( i = 1 ; i <= n ; i++ )
        fout<<fixed<<setprecision(10)<<ans[ i ]<<' ';

return 0;
}