Pagini recente » Cod sursa (job #2593367) | Cod sursa (job #2526890) | Cod sursa (job #2464832) | Cod sursa (job #2525872) | Cod sursa (job #2524632)
#include <fstream>
using namespace std;
ifstream in("tribute.in");
ofstream out("tribute.out");
struct aa
{
int x,y;
}v[50005];
int modul(int aa)
{
if(aa<0)
return -aa;
return aa;
}
int main()
{
int minnx,minny,maxxx,maxxy;
minnx=minny=0x7fffffff;
maxxx=maxxy=-100;
int n,dx,dy;
in>>n>>dx>>dy;
for(int i=1;i<=n;++i)
in>>v[i].x>>v[i].y;
for(int i=1;i<=n;++i)
{
if(v[i].x<minnx)
minnx=v[i].x;
if(v[i].x>maxxx)
maxxx=v[i].x;
if(v[i].y<minny)
minny=v[i].y;
if(v[i].y>maxxy)
maxxy=v[i].y;
}
long long int minim=10000000000000009;
for(int i=minnx;i+dx-1<=maxxx;++i)
for(int j=minny;j+dy-1<=maxxy;++j)
{
int k=i+dx-1,p=j+dy-1;
long long int sum=0;
for(int r=1;r<=n;++r)
{
int x1=v[r].x;
int y1=v[r].y;
if(x1<=k and x1>=i and j<=y1 and y1<=p)
sum+=0;
else if(x1>=k and y1<=j)
sum+=modul(x1-k)+modul(y1-j);
else if(x1>i and x1<k and y1<=j)
sum+=modul(j-y1);
else if(x1<=i and y1<=j)
sum+=modul(i-x1)+modul(j-y1);
else if(x1<=i and j<y1 and y1<p)
sum+=(i-x1);
else if(x1<=i and y1>=p)
sum+=modul(i-x1)+modul(y1-p);
else if(x1<k and x1>i and y1>=p)
sum+=modul(p-y1);
else if(x1>=k and y1>=p)
sum+=modul(x1-k)+modul(y1-p);
else if(x1>=k and j<y1 and y1<p)
sum+=modul(x1-k);
}
if(sum<minim)
minim=sum;
}
out<<minim;
return 0;
}