uva 11134 棋盘放车,每个车游个放置范围

来源:互联网 发布:斑马gk888t编辑软件 编辑:程序博客网 时间:2024/06/07 02:17
#include<cstdio>#include<cstring>int x1[5100],y1[5100],x2[5100],y2[5100],d1[5100],d2[5100];int vis[5100];int main(){int n;while(~scanf("%d",&n)&&n){int flag=0;for(int i=0;i<n;i++)scanf("%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i]);memset(d1,-1,sizeof(d1));for(int i=1;i<=n;i++){int lo=-1,r=n+1;for(int j=0;j<n;j++)if(d1[j]<0&&x2[j]<r&&i>=x1[j]){lo=j;r=x2[j];}if(lo==-1||i>r){flag=1;break;}d1[lo]=i;}if(flag)printf("IMPOSSIBLE\n");else{memset(d2,-1,sizeof(d2));for(int i=1;i<=n;i++){int lo=-1,r=n+1;for(int j=0;j<n;j++)if(d2[j]<0&&y2[j]<r&&i>=y1[j]){lo=j;r=y2[j];}if(lo==-1||i>r){flag=1;break;}d2[lo]=i;}    if(flag)printf("IMPOSSIBLE\n");else{for(int i=0;i<n;i++)printf("%d %d\n",d1[i],d2[i]);}}}}

原创粉丝点击