#include "stdafx.h"
#include <stdio.h>
int i;
float N,DX,DY;
float Top,Bottom,Left,Right;
float X,Y;
float mediumX,mediumY;
float S;
float distance(float &X,float &Y)
{
if(X==Left || X==Right || Y==Top || Y==Bottom) return 0;
if(X<Left && Y>Top) return (Left-X)+(Y-Top);
if(X<Left && Y<Top && Y>Bottom) return Left-X;
if(X<Left && Y<Bottom) return (Left-X)+(Bottom-Y);
if(X>Left && X<Right && Y>Top) return Y-Top;
if(X>Left && X<Right && Y<Top && Y>Bottom) return 0;
if(X>Left && X<Right && Y<Bottom) return Bottom-Y;
if(X>Right && Y>Top) return (X-Right)+(Y-Top);
if(X>Right && Y<Top && Y>Bottom) return X-Right;
if(X>Right && Y<Bottom) return (X-Right)+(Bottom-Y);
}
void build()
{
Top=mediumY+DY/2;
Bottom=mediumY-DY/2;
Left=mediumX-DX/2;
Right=mediumX+DX/2;
}
float medium(float medium,float point,int i)
{
if(point>medium) return medium+(point-medium)/i;
if(point<medium) return medium-(medium-point)/i;
if(point==medium) return medium;
}
void main()
{
FILE* buffer;
buffer = fopen("tribute.in","r");
fscanf(buffer,"%f","%f","%f",N,DX,DY);
fscanf(buffer,"%f","%f",mediumX,mediumY);
for(i=2;i<=N;i++)
{
fscanf(buffer,"%f","%f",X,Y);
mediumX=medium(mediumX,X,i);
mediumY=medium(mediumY,Y,i);
}
fclose(buffer);
build();
buffer = fopen("tribute.in","r");
fscanf(buffer,"%f","%f","%f",N,DX,DY);
S=0;
for(i=1;i<=N;i++)
{
fscanf(buffer,"%f","%f",X,Y);
S=S+distance(X,Y);
}
/* printf("%f",S); */
fclose(buffer);
FILE *output;
output = fopen("tribute.out","w");
fprintf(output,"%f",S);
fclose(output);
}