Pagini recente » Cod sursa (job #205745) | Profil ghennac | Cod sursa (job #1667664) | Cod sursa (job #75737) | Cod sursa (job #171664)
Cod sursa(job #171664)
#include <cstdio>
#include <cstdlib>
#define vv 220
using namespace std;
int x[vv],y[vv],n,m,p;
void citire()
{
freopen("wanted.in","r",stdin);
scanf("%d", &n);
m=20000;
p=0;
for (int i=0; i<n; i++)
{
scanf("%d%d", &x[i], &y[i]);
if (x[i]<m)
m=x[i];
}
}
void normalizare()
{
if (m<0)
{
p=(-m);
for (int i=0; i<n; i++)
x[i]+=p;
}
}
void rezolvare()
{
int s,e;
m=2100000000;
for (int i=1; i<n-1; i++)
{
e=0;
s=labs(p-x[i]);
s+=y[i];
for (int j=i+1; j<n; j++)
{
s+=y[j]+y[j-1];
s+=x[j]-x[j-1];
}
e=s;
s=labs(p-x[i]);
s+=y[i];
for (int j=i-1; j>=0; j--)
{
s+=y[j]+y[j+1];
s+=x[j+1]-x[j];
}
if (e>s)
s=e;
if (s<m)
m=s;
}
}
void sortare(int l, int r)
{
int i,j,xx,yy;
i=l;
j=r;
xx=x[(l+r)/2];
do
{
while (x[i]<xx)
++i;
while (xx<x[j])
--j;
if (i<=j)
{
yy=x[i];
x[i]=x[j];
x[j]=yy;
yy=y[i];
y[i]=y[j];
y[j]=yy;
++i;
--j;
}
}
while (i<=j);
if (l<j)
sortare(l,j);
if (i<r)
sortare(i,r);
}
int main()
{
citire();
sortare(0,n-1);
normalizare();
rezolvare();
freopen("wanted.out","w",stdout);
printf("%d\n", m);
return 0;
}