Pagini recente » Cod sursa (job #1799517) | Cod sursa (job #1755058) | Cod sursa (job #553220) | Cod sursa (job #2174091) | Cod sursa (job #2307608)
#include <bits/stdc++.h>
#define EPS 0.000000001
/// TONI BO$$ was here
/// #MLC
using namespace std;
double a[302][302];
double rez[302];
int main()
{
int n,m,i,j,k,t;
freopen("gauss.in","r",stdin);
freopen("gauss.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1; i<=n; i++)
for(j=1; j<=m+1; j++)
scanf("%lf",&a[i][j]);
for(i=1,j=1; i<=n && j<=m; i++,j++){
for(k=i; k<=n; k++)
if(a[i][j]>EPS || a[i][j]<-EPS)
break;
if(k==n+1){
i--;
continue ;
}
for(t=j+1; t<=m+1; t++)
a[k][t]/=a[k][j];
a[k][j]=1;
for(t=1; t<=m+1; t++)
{
double aux=a[i][t];
a[i][t]=a[k][t];
a[k][t]=aux;
}
for(k=i+1; k<=n; k++)
{
for(t=j+1; t<=m+1; t++)
a[k][t]-=a[k][j]*a[i][t];
a[k][j]=0;
}
}
for(i=n; i>0; i--)
for(j=1; j<=m+1; j++)
if(a[i][j]>EPS || a[i][j]<-EPS)
{
if(j==m+1)
{
printf("Imposibil");
exit(0);
}
rez[j]=a[i][m+1];
for(k=j+1; k<=m; k++)
rez[j]-=rez[k]*a[i][k];
break;
}
for(i=1; i<=m; i++)
printf("%.8lf ",rez[i]);
return 0;
}