hnu 12432 Bottom of the sea#矩形交

来源:互联网 发布:熊片数据库 安卓 编辑:程序博客网 时间:2024/06/05 14:14
/**求一个矩形被另一个矩形覆盖后,剩余部分至少能切成几个矩形。这题1A,立即有一种极品屌丝的赶脚,直接if每一种情况*/#include <stdio.h>#include <string.h>void solve(){    int ax,ay,bx,by,cx,cy,dx,dy;    scanf("%d%d%d%d%d%d%d%d",&ax,&ay,&bx,&by,&cx,&cy,&dx,&dy);    if(cx < ax)        cx = ax;    if(dx > bx)        dx = bx;    if(cy < ay)        cy = ay;    if(dy > by)        dy = by;    if(cy >= by || dy <= ay || cx >= bx || dx <= ax)    {        printf("1\n%d %d %d %d\n",ax,ay,bx,by);        return ;    }    if(cx <= ax && dx >= bx && cy <= ay && dy >= by)    {        printf("0\n");        return ;    }    if(cy == ay && dy == by)    {        if(ax == cx)        {            if(dx < bx)                printf("1\n%d %d %d %d\n",dx,ay,bx,by);            else                printf("0\n");            return ;        }        if(dx == bx)        {            if(cx > ax)                printf("1\n%d %d %d %d\n",ax,ay,cx,dy);            else                printf("0\n");            return ;        }        printf("2\n%d %d %d %d\n%d %d %d %d\n",ax,ay,cx,dy,dx,cy,bx,by);        return ;    }    if(ay == cy)    {        if(ax == cx && bx == dx)        {            printf("1\n%d %d %d %d\n",cx,dy,bx,by);            return ;        }        if(ax == cx)        {            printf("2\n%d %d %d %d\n%d %d %d %d\n",dx,cy,bx,dy,ax,dy,bx,by);            return;        }        if(bx == dx)        {            printf("2\n%d %d %d %d\n%d %d %d %d\n",ax,ay,cx,dy,ax,dy,bx,by);            return;        }        printf("3\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",               ax,ay,cx,dy,dx,ay,bx,dy,ax,dy,bx,by);        return ;    }    if(dy == by)    {        if(ax == cx && bx == dx)        {            printf("1\n%d %d %d %d\n",ax,ay,bx,cy);            return;        }        if(ax == cx)        {            printf("2\n%d %d %d %d\n%d %d %d %d\n",dx,cy,bx,by,ax,ay,bx,cy);            return ;        }        if(bx == dx)        {            printf("2\n%d %d %d %d\n%d %d %d %d\n",ax,cy,cx,dy,ax,ay,bx,cy);            return;        }        printf("3\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",               ax,cy,cx,dy, dx,cy,bx,by, ax,ay,bx,cy);        return;    }    if(ax == cx && bx == dx)    {        printf("2\n%d %d %d %d\n%d %d %d %d\n",ax,ay,bx,cy,ax,dy,bx,by);        return ;    }    if(ax == cx)    {        printf("3\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",               ax,dy,bx,by, dx,cy,bx,dy,ax,ay,bx,cy);        return ;    }    if(bx == dx)    {        printf("3\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",               ax,dy,bx,by, ax,cy,cx,dy,ax,ay,bx,cy);        return ;    }    printf("4\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n",           ax,dy,bx,by, ax,cy,cx,dy, dx,cy,bx,dy, ax,ay,bx,cy);}int main(){    solve(); //   getchar();   printf("hello");    return 0;}/**0 0 5 20 0 2 50 0 5 20 0 6 6*/


原创粉丝点击