poj 3269 Building A New Barn

2014-11-23 21:38:18 · 作者: · 浏览: 7
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=1e4+9;
int x[maxn],y[maxn];
struct D
{
    int x,y;
    bool operator <(const D &xx)const
    {
        if(x==xx.x)
        return y>1]==x[n+2>>1]&&y[n>>1]==y[n+2>>1]))
    {
        bool flag=false;
        int xx=x[n+1>>1],yy=y[n+1>>1];
        for(int k=1;k<=n;k++)
        if(point[k].x==xx&&point[k].y==yy)
        flag=true;
        if(!flag)
        {
            for(int i=1;i<=n;i++)
            {
                sum+=abs(x[i]-xx);
                sum+=abs(y[i]-yy);
            }
            printf("%lld %d\n",sum,1);
        }
        else
        {
            for(int i=1;i<=n;i++)
            {
                sum+=abs(x[i]-(xx+1));
                sum+=abs(y[i]-yy);
            }
            long long ret=sum,tmp=1;
            sum=0;
            for(int i=1;i<=n;i++)
            {
                sum+=abs(x[i]-(xx-1));
                sum+=abs(y[i]-yy);
            }
            if(sum==ret) tmp++;
            else if(sum
>1]); sum+=abs(y[i]-y[n>>1]); } int k=1; for(int i=x[n>>1];i<=x[n+2>>1];i++) for(int j=y[n>>1];j<=y[n+2>>1];j++) { for(;point[k].x