Pagini recente » Rating cirstea dorin (dori2000) | Cod sursa (job #394417) | Cod sursa (job #773146) | Cod sursa (job #1639764) | Cod sursa (job #1306082)
#include <cstdio>
FILE* in=fopen("tribute.in","r");
FILE* out=fopen("tribute.out","w");
const int Q=50002;
int n,l,c;
struct point{
int x,y;
}v[Q];
int ver(int a, int b)
{
if(a<0 || b<0 || a+l>50000 || b+c>50000)
return 2000000000;
int rez=0;
for(int i=1; i<=n; i++)
{
if(a>v[i].x)
{
rez+=a-v[i].x;
}
if(a+l<v[i].x)
{
rez+=v[i].x-a-l;
}
if(b>v[i].y)
rez+=b-v[i].y;
if(b+c<v[i].y)
rez+=v[i].y-b-c;
}
return rez;
}
int main()
{
fscanf(in,"%d%d%d",&n,&l,&c);
int sx=0,sy=0;
for(int i=1; i<=n; i++)
{
fscanf(in,"%d%d",&v[i].x,&v[i].y);
sx+=v[i].x;
sy+=v[i].y;
}
int rez=2000000000;
int act;
for(int k=-10; k<=10; k++)
{
for(int t=-10; t<=10; t++)
{
act=ver(sx/n-l/2+k,sy/n-c/2+t);
if(act<rez)
rez=act;
}
}
fprintf(out,"%d",rez);
return 0;
}