Pagini recente » Profil missbimbo | Cod sursa (job #1957582) | Cod sursa (job #2046364) | Cod sursa (job #1883330) | Cod sursa (job #812518)
Cod sursa(job #812518)
#include<cstdio>
#include<algorithm>
#define eps 0.0000001
using namespace std;
double a[305][305],r,sol[305];
int i,j,k,l,n,m,q,x;
int main()
{
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("%d",&q);
a[i][j]=(double)q;
}
}
for(i=1,j=1;i<=n&&j<=m;j++)
{
for(k=i;k<=n;k++)
{
if(a[k][j]>eps||a[k][j]<-eps) break;
}
if(k!=n+1)
{
x=k;
for(k=1;k<=m+1;k++)
{
swap(a[i][k],a[x][k]);
}
for(k=j+1;k<=m+1;k++)
{
a[i][k]=a[i][k]/a[i][j];
}
a[i][j]=1;
for(k=i+1;k<=n;k++)
{
for(l=j+1;l<=m+1;l++)
{
a[k][l]=a[k][l]-a[k][j]*a[i][l];
}
a[k][j]=0;
}
i++;
}
}
for(i=n;i>=1;i--)
{
for(j=1;j<=m+1;j++)
{
if(a[i][j]>eps||a[i][j]<-eps)
{
if(j==m+1) {printf("Imposibil"); return 0;}
sol[j]=a[i][m+1];
for(k=j+1;k<=m;k++)
{
sol[j]-=a[i][k]*sol[k];
}
break;
}
}
}
for(i=1;i<=m;i++) printf("%.10f ",sol[i]);
return 0;
}