您的位置:首页 > 其它

hnu 12432 Bottom of the sea#矩形交

2012-08-05 15:11 411 查看
/**
求一个矩形被另一个矩形覆盖后,剩余部分至少能切成几个矩形。
这题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 2
0 0 2 5

0 0 5 2
0 0 6 6
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: