#include<bits/stdc++.h>

#define inf 0x3f3f3f3f

const int maxn=;

using namespace std;

int n;

struct rook{
int x1,y1;
int x2,y2;
int id;
int resx,resy;
int size(){
return abs(x1 - x2) * abs(x1 - x2) + abs(y1 - y2) * abs(y1 - y2);
}
int width(){
return abs(x1 - x2);
}
int len(){
return abs(y1 - y2);
}
}rooks[maxn+]; int flagx[maxn+]; int flagy[maxn+]; bool cmpx(rook a, rook b){
/*if(a.width() == b.width()){
return a.x1 < b.x1;
}
return a.width() < b.width();*/
//刚开始想错了,这么去贪心,是错的。
/* 反例
* 1111
* 1
* 1
* 1
* 11
*/
if(a.x2 == b.x2){
return a.x1 < b.x1;
}
return a.x2 < b.x2;
}
bool cmpy(rook a, rook b){
/*if(a.len() == b.len()){
return a.y1 < b.y1;
}
return a.len() < b.len();*/
if(a.y2 == b.y2){
return a.y1 < b.y1;
}
return a.y2 < b.y2;
}
bool cmp1(rook a, rook b){
return a.id < b.id;
} int main()
{
while(scanf("%d",&n)!=EOF&&n){
int res = ;
memset(flagx, , sizeof(flagx));
memset(flagy, , sizeof(flagy));
for(int i = ; i < n; ++i){
scanf("%d%d%d%d",&rooks[i].x1,&rooks[i].y1,&rooks[i].x2,&rooks[i].y2);
rooks[i].id = i;
}
sort(rooks, rooks + n, cmpx);
for(int i = ; i < n; ++i){
int flag = ;
for(int j = rooks[i].x1; j <= rooks[i].x2; ++j){
if(!flagx[j]){
flagx[j] = ;
rooks[i].resx = j;
flag = ;
break;
}
}
if(!flag){
res = ;
break;
}
}
if(!res){
sort(rooks, rooks + n, cmpy);
for(int i = ; i < n; ++i){
int flag = ;
for(int j = rooks[i].y1; j <= rooks[i].y2; ++j){
if(!flagy[j]){
flagy[j] = ;
rooks[i].resy = j;
flag = ;
break;
}
}
if(!flag){
res = ;
break;
}
}
}
if(res){
printf("IMPOSSIBLE\n");
} else {
sort(rooks, rooks + n, cmp1);
for(int i = ; i < n; ++i){
printf("%d %d\n",rooks[i].resx,rooks[i].resy);
}
}
}
return ;
}

Uva11134的更多相关文章

  1. uva11134 - Fabled Rooks(问题分解,贪心法)

    这道题非常好,不仅用到了把复杂问题分解为若干个熟悉的简单问题的方法,更是考察了对贪心法的理解和运用是否到位. 首先,如果直接在二维的棋盘上考虑怎么放不好弄,那么注意到x和y无关(因为两个车完全可以在同 ...

  2. UVA-11134 Fabled Rooks 贪心问题(区间贪心)

    题目链接:https://cn.vjudge.net/problem/UVA-11134 题意 在 n*n 的棋盘上,放上 n 个车(ju).使得这 n 个车互相不攻击,即任意两个车不在同一行.同一列 ...

  3. Uva11134 Fabled Rooks

    普通的贪心题. 虽然图是二维的,但可以把横向和纵向分开处理. 将区间按右端点排序,然后从区间左端点到右端点找第一个空位置放棋子即可. /*by SilverN*/ #include<algori ...

  4. 8-4 Fabled Rooks uva11134

    题意:你的任务是在n*n的棋盘上放 n 小于5000 个车 使得任意两个车不互相攻击 且第i个车在一个给定的矩形ri之内  给出该矩形左上角坐标和右下角坐标四个点  必须满足放车的位置在矩形内  边上 ...

  5. 【UVA11134】传说中的车

    横纵坐标互不影响,所以问题转化到一维:在n个区间中每个区间选一个数,n个数都被选一次 将区间按右端点排序,枚举区间,每个区间选最靠左的没被选过的点 #include<algorithm> ...

  6. UVA11134传说中的车(放棋子)

    题意:       给你一个n*n的棋盘,让你在棋盘上放n个棋子,要求是所有棋子不能相互攻击(同行或者同列就会攻击),并且每个棋子都有一个限制,那就是必须在给定的矩形r[i]里,输出每个棋子的位置,s ...

  7. UVA - 11134 Fabled Rooks[贪心 问题分解]

    UVA - 11134 Fabled Rooks We would like to place n rooks, 1 ≤ n ≤ 5000, on a n × n board subject to t ...

  8. UVA 11134 Fabled Rooks(贪心的妙用+memset误用警示)

    题目链接: https://cn.vjudge.net/problem/UVA-11134 /* 问题 输入棋盘的规模和车的数量n(1=<n<=5000),接着输入n辆车的所能在的矩阵的范 ...

  9. UVa 11134 传说中的车

    https://vjudge.net/problem/UVA-11134 题意:在n*n的棋盘上放n个车,使得任意两个车不相互攻击,且第i个车在一个给定的矩形Ri之内.用4个整数xli,yli,xri ...

随机推荐

  1. HTML5 拖放:在相册中对照片进行排序

    1. [代码]index.html     <div class="albums">    <div class="album" id=&qu ...

  2. 【详解】苹果AppStore审核被拒,原因终逃不过这些!

    近日,相信很多开发者都留意到了: 苹果针对应用标题的审核确有明显的变严趋势!我们在<惊!苹果再次加强审核力度,众App纷纷止步应用标题>中也对该现象进行了详细的分析,并给出了相应的解决方案 ...

  3. Lucene默认的打分算法——ES默认

    改变Lucene的打分模型 随着Apache Lucene 4.0版本在2012年的发布,这款伟大的全文检索工具包终于允许用户修改默认的基于TF/IDF原理的打分算法.Lucene API变得更加容易 ...

  4. Struts2与ServletAPI解耦

    什么是与Servlet API解耦? 为了避免与servlet API耦合在一起,方便Action做单元测试, Struts2对HttpServletRequest,HttpSession,和Serv ...

  5. python二进制数据

    一直以来对python的二进制数据搞不清楚. 一.二进制显示格式与实际存储值区别 1.二进制数据在python中以字节(bytes)类型和字节数组类型(bytearray)保存着,前者数据固定,后者不 ...

  6. MySQL 数据底部出现总计字样 第二种办法 纵向合并 20161103

    上次在博客http://www.cnblogs.com/Mr-Cxy/p/5923375.html 我们使用了group by with rollup 函数 field自定义排序 来实现添加底部总计字 ...

  7. ACM学习历程—BestCoder 2015百度之星资格赛1004 放盘子(策略 && 计算几何)

    Problem Description 小度熊喜欢恶作剧.今天他向来访者们提出一个恶俗的游戏.他和来访者们轮流往一个正多边形内放盘子.最后放盘子的是获胜者,会赢得失败者的一个吻.玩了两次以后,小度熊发 ...

  8. bzoj 3232 圈地游戏——0/1分数规划(或网络流)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3232 当然是0/1分数规划.但加的东西和减的东西不在一起,怎么办? 考虑把它们合在一起.因为 ...

  9. hdu 1521 排列组合 —— 指数型生成函数

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 标准的指数型生成函数: WA了好几遍,原来是多组数据啊囧: 注意精度,直接强制转换(int)是舍去小 ...

  10. VIJOS:P1082丛林探险

    描述 东非大裂谷中有一片神秘的丛林,是全世界探险家的乐园,著名黄皮肤探险家BB一直想去试试.正好我国科学家2005年4月将首次对东非大裂谷进行科考,BB决定随科考队去神秘丛林探险.在出发之前,他搜集了 ...