记录编号 415117 评测结果 AAAAAAAAAA
题目名称 [JSOI 2008]球形空间产生器sphere 最终得分 100
用户昵称 Gravataryymxw 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-06-15 16:49:44 内存使用 0.00 MiB
显示代码纯文本
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#define p 1e-8
using namespace std;
int n;
double c[20][20],a[20][20];
void gs()
{
  for(int i=1;i<=n;++i)
  {
    int d=i;
    for(int j=i+1;j<=n;++j)
      if(fabs(a[j][i])>fabs(a[d][i]))
        d=j;
    for(int j=1;j<=n+1;++j)
      swap(a[d][j],a[i][j]);
    if(fabs(a[i][i])<p)
      continue;
    double tmp=a[i][i];
    for(int j=1;j<=n+1;++j)
      a[i][j]/=tmp;
    for(int j=1;j<=n;++j)
      if(i!=j)
      {
        double tmp=a[j][i];
        for(int k=1;k<=n+1;++k)
          a[j][k]-=a[i][k]*tmp;
      }
  }
}
int haha()
{
  freopen("bzoj_1013.in","r",stdin);
  freopen("bzoj_1013.out","w",stdout);
  scanf("%d",&n);
  for(int i=1;i<=n+1;++i)
    for(int j=1;j<=n;++j)
      scanf("%lf",&c[i][j]);
  for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
      a[j][i]=2*(c[j+1][i]-c[j][i]);
  for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
      a[i][n+1]+=c[i+1][j]*c[i+1][j]-c[i][j]*c[i][j];
  gs();
  for(int i=1;i<=n;++i)
    printf("%.3lf ",a[i][n+1]);
  //system("pause");
  return 0;
}
int ying=haha();
int main()
{;}