Cod sursa(job #1181247)

Utilizator acomAndrei Comaneci acom Data 2 mai 2014 12:15:01
Problema Wanted Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct punct
{
    int x,y;
} a[205];
int n,r,st[205],dr[205],w[205];
bool cmp(punct A, punct B)
{
    return (A.x<B.x);
}
inline int dist(punct A, punct B)
{
    int R=A.y+B.y+abs(A.x-B.x);
    return R;
}
int main()
{
    int i;
    freopen("wanted.in","r",stdin);
    freopen("wanted.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;++i)
        scanf("%d %d",&a[i].x,&a[i].y);
    sort(a+1,a+n+1,cmp);
    for (i=2;i<=n;++i)
        st[i]=st[i-1]+dist(a[i-1],a[i]);
    for (i=n-1;i>0;--i)
        dr[i]=dr[i+1]+dist(a[i+1],a[i]);
    for (i=1;i<=n;++i)
        w[i]=dist(a[0],a[i]);
    r=max(st[1],dr[1])+w[1];
    for (i=2;i<=n;++i)
        r=min(r,max(st[i],dr[i])+w[i]);
    printf("%d\n",r);
    return 0;
}