rt,2分.....
#include<bits/stdc++.h>
#define G 6.67408e-11
#define mit 0.01
//#define ff(x) ((x>0)?x:(-x))
using namespace std;
int n;
class poj
{
public:
int spe;
double m;
double x[3],v[3],a[3];
poj(){}
poj(double xt,double yt,double zt,double mt,double vxt,double vyt,double vzt,int st)
{
m=mt,x[0]=xt,x[1]=yt,x[2]=zt;spe=st;
v[0]=vxt,v[1]=vyt,v[2]=vzt;
a[0]=a[1]=a[2]=0;
}
void move()
{
for(int i=0;i<=2;i++)
{
x[i]+=v[i]*mit;
a[i]+=x[i]*mit;
}
}
};
poj a[40];
double js(poj a,poj b)
{
return sqrt((a.x[0]-b.x[0])*(a.x[0]-b.x[0])+(a.x[1]-b.x[1])*(a.x[1]-b.x[1])+(a.x[2]-b.x[2])*(a.x[2]-b.x[2]));
}
void gx(poj &x)
{
for(int i=1;i<=n;i++)
{
if(i!=x.spe)
{
double jl=js(x,a[i]);
double ff=G*a[i].m*x.m/(jl*jl);
for(int j=0;j<=2;j++)
{
x.a[j]+=ff*fabs(a[i].x-x.x)/jl/x.m;
}
}
}
}
int main()
{
double t;
scanf("%d%lf",&n,&t);
for(int i=1;i<=n;i++)
{
double x,y,z,m,vx,vy,vz;
scanf("%lf%lf%lf%lf%lf%lf%lf",&x,&y,&z,&m,&vx,&vy,&vz);
a[i]=poj(x,y,z,m,vx,vy,vz,i);
}
for(int it=0;it<=t*100;it++)
{
for(int j=1;j<=n;j++)
a[j].move();
for(int j=1;j<=n;j++)
gx(a[j]);
}
for(int j=1;j<=n;j++)
printf("%f %f %f\n",a[j].x[0],a[j].x[1],a[j].x[2]);
return 0;
}