C1675 [Wannafly冬令营2018Day4]跑跑跑路

内存限制:256 MB 时间限制:1000 ms

题目描述

$wls$在玩一个有趣的游戏。

现在有$n$个玩家,游戏共分两轮。

对于每一轮游戏,每个玩家会有一个标签,标签相同的玩家需要跑到同一个点集合。

假设一个玩家初始的位置为$S_0$,两轮的集结点分别为$S_1$,$S_2$,则他需要付出的体力为 $dist(S_1-S_0)^2 + dist(S_2-S_1)^2$,其中$dist(x, y)$为$x$与$y$之间的欧几里得距离。

游戏的目标是使得所有玩家付出的体力和最小。

请求出这个值。

输入格式

第一行一个整数$n$表示玩家数。

接下来$n$行,每行两个整数$x$,$y$表示玩家的初始坐标。

接下来一行$n$个整数,第$i$个整数$f_i$表示$i$号玩家第一轮的标签。

接下来一行$n$个整数,第$i$个整数$s_i$表示$i$号玩家第二轮的标签。

$1 \leq n \leq 500$

$-1000 \leq x, y \leq 1000$

$1 \leq f_i, s_i \leq n$

输出

一行一个浮点数表示答案。

绝对误差或相对误差在$1e-5$内即正确。

样例

样例输入 1

2 1 1 10 10 1 1 1 1

样例输出 1

81.00000

提示