蒟蒻这个退火为什么WA4改个点
求大佬帮忙查错
#include<bits/stdc++.h>
//#define int long long
#define ANS fixed<<setprecision(3)
//#define GCC optimize(3,"Ofast","inline")
using namespace std;
inline int time10(int x)
{return(x<<3)+(x<<1);}
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f*=-1;
if(ch==-1)exit(0);
ch=getchar();
}
while(ch>='0'&&ch<='9')
x=time10(x)+(ch^48),ch=getchar();
return x*f;
}
inline void write(int x){
if(x<0)x=-x,putchar('-');
if(x<10){putchar(x+48);return;}
write(x/10);putchar(x%10+48);
}const int N=1e2+10;
long double a[N][N],ans[N],answ,t[N],tw;
int n;
inline long double dis(long double a[],long double b[]){
long double ans=0;
for(int i=1;i<=n;i++){
ans+=pow(a[i]-b[i],2);
}return sqrt(ans);
}
inline long double max(long double k1,long double k2){
return(k1>k2)?k1:k2;
}
inline long double check(long double k[]){
long double d=0;
for(int i=1;i<=n+1;i++)
d+=dis(k,a[i]);
d/=(n+1);
long double ans=0;
for(int i=1;i<=n+1;i++)
ans+=pow(dis(k,a[i])-d,2);
ans/=(n+1);
return sqrt(ans);
}
inline void solve(){
long double k=8000;
while(k>=1e-15){
for(int i=1;i<=n;i++)
t[i]=ans[i]+((rand()<<1)-RAND_MAX)*k;
tw=check(t);
if(tw<answ){
for(int i=1;i<=n;i++)
ans[i]=t[i];
answ=tw;
}
else if(exp((tw-answ)/k)*RAND_MAX<rand())
for(int i=1;i<=n;i++) ans[i]=t[i];
k*=0.999;
}return ;
}
signed main(){
srand(time(NULL)*3+91346981759836498);
cin>>n;
for(int i=1;i<=n+1;i++){
for(int j=1;j<=n;j++)
cin>>a[i][j],
ans[j]+=a[i][j]/(n+1);
}answ=check(ans);
while((long double)clock()/CLOCKS_PER_SEC<0.97)solve();
// cout<<answ<<":/";
for(int i=1;i<=n;i++) cout<<ANS<<ans[i]<<" ";
fclose(stdin);
fclose(stdout);
return 0;
}//205