Cod sursa(job #2079911)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 1 decembrie 2017 23:22:21
Problema Algoritmul lui Gauss Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("gauss.in");
ofstream g("gauss.out");
int n,m,i,j,k,p;
double ans[310],a[310][310];
bool viz[310];
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m+1;j++)
            f>>a[i][j];
    for(j=1;j<=m;j++)
        for(i=1;i<=n;i++)
            if(a[i][j]&&(!viz[i]))
            {
                viz[i]=1;
                for(p=1;p<=n;p++)
                    if(p!=i)
                    {
                        double x=a[p][j]/a[i][j];
                        for(k=1;k<=m+1;k++)
                            a[p][k]-=x*a[i][k];
                    }
                break;
            }
    for(i=1;i<=n;i++)
    {
        bool ok=0;
        for(j=1;j<=m;j++)
            if(a[i][j])
            {
                ans[j]=a[i][m+1]/a[i][j];
                ok=1;
                break;
            }
        if((!ok)&&a[i][m+1])
        {
            g<<"Imposibil!";
            return 0;
        }
    }
    for(i=1;i<=m;i++)
        g<<fixed<<setprecision(10)<<ans[i]<<' ';
    return 0;
}