Cod sursa(job #2840940)

Utilizator Tudor06MusatTudor Tudor06 Data 29 ianuarie 2022 01:28:13
Problema Algoritmul lui Gauss Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#import<bits/stdc++.h>
#define d double
using namespace std;d a[301][301];d e=0.001;int x[301];d s[301];main(){ifstream f("gauss.in");ofstream g("gauss.out");int n,m,i=1,j,y,l=1,k;f>>n>>m;for(;i<=n;i++)for(j=1;j<=m+1;j++)f>>a[i][j];for(j=1;j<=m;j++){y=l;for(i=l+1;i<=n;i++)if(abs(a[i][j])>abs(a[y][j]))y=i;if(abs(a[y][j])>e){x[j]=l;for(k=1;k<=m+1;k++)swap(a[l][k],a[y][k]);for(i=1;i<=n;i++)if(i!=l){d u=a[i][j]/a[l][j];for(k=1;k<=m+1;k++)a[i][k]-=a[l][k]*u;}}l++;}for(j=1;j<=m;j++)if(x[j])s[j]=a[x[j]][m+1]/a[x[j]][j];for(i=1;i<=n;i++){for(j=1;j<=m;j++)a[i][m+1]-=a[i][j]*s[j];if(a[i][m+1]>e){g<<"Imposibil";j=3*m;}}for(j-=m;j<=m;j++)g<<fixed<<setprecision(9)<<s[j]<<' ';}