集会

时间限制:10s      空间限制:256MB

题目描述

Fictitia是一个很大的城市,他的街道由许多横向和纵向的街道垂直交叉组成,每两条相邻的横向街道距离为1,每两条相邻的横向街道距离也为1。每个十字路口有一个整数坐标(x,y)。所有的市民都居住在某个十字路口。
有一天,Fictitia中有一群不高兴的市民准备集会。他们想选一个十字路口(x’,y’)作为集会地点,使得所有人离集会地点的曼哈顿距离的总和最小。如果某个市民居住在(x,y),那么他与集会地点的曼哈顿距离为|x-x’|+|y-y’|。
但为了让所有人及时赶到,集会地点离每个市民的曼哈顿距离不能超过d。市民们想知道最小的距离总和为多少,如果不存在合理的集会地点,输出“impossible”。


输入格式

每个文件有多个输入数据,文件最后一行为一个数0。
对于每组输入数据
第一行为一个正整数n(n>=2),表示集会市民的人数。
接下来的n行,每行两个整数x,y(0<=x,y<=10^9),表示每个市民居住地点的坐标。
最后一行一个整数d(0<=d<=2*10^9),表示集会地点与每个市民居住地点的最大距离。


输出格式

对于每个测试输入,如果存在合理地点,输出一行,包含一个整数为最小的距离总和;否则输出一行“impossible”。


样例输入

5
3 1
4 1
5 9
2 6
5 3
10
5
3 1
4 1
5 9
2 6
5 3
5
5
3 1
4 1
5 9
2 6
5 3
4
0

样例输出

18
20
impossible

提示

100%的数据,n<=100000,每个文件中所有数据n的总和不超过300000


题目来源

没有写明来源