void SA()
{
for (register double zzz = 0, t = T_MAX; t >= T_MIN; t *= T_STEP, zzz = 0) {
for (register int i = 1; i <= n + 1; i++) {
dis[i] = distance_clac(wer, p[i]);
zzz += dis[i];
}
zzz /= n + 1;
if(zzz == 0)
continue;
for (int i = 1; i <= n; i++)
delta[i] = 0;
for (int i = 1; i <= n + 1; i++)
for (int j = 1; j <= n; j++)
delta[j] += (dis[i] - zzz) / zzz * -(wer[j] - p[i][j]);
for (int i = 1; i <= n; i++)
wer[i] += delta[i] / 2;
}
}