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

xiaoxiao2021-02-28  93

#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]); } } } }
转载请注明原文地址: https://www.6miu.com/read-60406.html

最新回复(0)