1. 程式人生 > >【題解】洛谷P1056排座椅[NOIP2008普及] 模擬

【題解】洛谷P1056排座椅[NOIP2008普及] 模擬

題目連結

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1010;
int x[N],y[N],xn[N<<1],yn[N<<1];
int getmax(int *a)
{
    int ans=1;
    for(int i=1;i<=1000;i++)
    if(a[ans]<a[i])ans=i;
    return ans;
}
int main()
{
    //freopen("in.txt","r",stdin);
    int
m,n,k,l,d,i; int x1,x2,y1,y2; scanf("%d%d%d%d%d",&m,&n,&k,&l,&d); for(i=1;i<=d;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(x1==x2)y[min(y1,y2)]++; else x[min(x1,x2)]++; } for(i=1;i<=k;i++) { int tmp=getmax(x
); xn[tmp]=1; x[tmp]=0; } for(i=1;i<=l;i++) { int tmp=getmax(y); yn[tmp]=1; y[tmp]=0; } for(i=1;i<=1000;i++) if(xn[i])printf("%d ",i); puts(""); for(i=1;i<=1000;i++) if(yn[i])printf("%d ",i); puts(""); return 0; }