P0703

[HAOI2011]防线修建

[HAOI2011]防线修建

A 国与 B 国的矛盾日益激化。为防止意外发生,A 国准备修建一条防线,将需要保护的城市围在防线内部。由于经费有限,A 国可能随时撤销对部分城市的保护,并希望在每次调整后得知修建防线所需的最少费用。

A 国境内的 xx 轴是一条河流,可以作为天然防线,因此无须在河流上额外修建防线。河边有两座城市,坐标分别为 (0,0)(0,0) 和 (n,0)(n,0)。其余城市的横坐标均严格大于 00 且严格小于 nn,纵坐标均严格大于 00。

A 国有一座不位于 (0,0)(0,0) 或 (n,0)(n,0) 的首都。河边的两座城市和首都始终需要受到保护,不会被撤销。

修建的防线由若干条线段组成,并与河流共同围住所有需要保护的城市。长度为 11 的防线花费为 11,因此防线的总花费等于所有需要修建的线段长度之和。

你需要处理以下两种操作:

  • 撤销对第 ii 座普通城市的保护;
  • 询问保护当前所有指定城市时,修建防线所需的最少总费用。

对于每次询问,请输出对应的最少费用。

输入格式

第一行包含三个整数 n,x,yn,x,y,表示两座河边城市的坐标分别为 (0,0)(0,0)、(n,0)(n,0),首都的坐标为 (x,y)(x,y)。

第二行包含一个整数 mm,表示除首都和两座河边城市外的普通城市数量。

接下来 mm 行,每行包含两个整数 a,ba,b,表示一座普通城市的坐标为 (a,b)(a,b)。这些城市按照输入顺序依次编号为 11 至 mm。

随后一行包含一个整数 qq,表示操作总数。

接下来 qq 行,每行表示一次操作,格式为以下两种之一:

  • 1 i:撤销对第 ii 座普通城市的保护;
  • 2:询问当前修建防线所需的最少总费用。

输出格式

对于每次询问,输出一行一个实数 vv,表示修建防线所需的最少费用,保留两位小数。

样例输入

4 2 1
2
1 2
3 2
5
2
1 1
2
1 2
2

样例输出

6.47
5.84
4.47

数据范围

  • m≤105m\le 10^5;
  • q≤2×105q\le 2\times 10^5;
  • n>1n>1;
  • 所有点的坐标均在 10410^4 以内;
  • 数据保证不存在重合的点。

来源与许可

本题为 HAOI 2011 试题「防线修建」,题面与测试数据整理自 BZOJ 2300。

样例 1

输入

4 2 1
2
1 2
3 2
5
2
1 1
2
1 2
2

输出

6.47
5.84
4.47