10分代码:
#include <bits/stdc++.h>
using namespace std;
const int N=2005,D=2005;
int m,n,k,l,d;
struct hallways
{
int w,p;
} a[N],b[N];
bool cmp(hallways a,hallways b)
{
if(a.w!=b.w) return a.w > b.w;
return a.p < b.p;
}
int main()
{
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
for(int i=1; i<=d; i++)
{
int x,y,p,q;
scanf("%d%d%d%d",&x,&y,&p,&q);
int xx=min(x,p),yy=min(y,q);
if(y==q)
{
a[xx].p=xx;
a[xx].w++;
}
else
{
b[yy].p=yy;
b[yy].w++;
}
}
sort(a+1,a+n+1,cmp);
sort(b+1,b+m+1,cmp);
for(int i=1; i<=k; i++) printf("%d ",a[i].p);
printf("\n");
for(int i=1; i<=l; i++) printf("%d ",b[i].p);
return 0;
}
100分代码
#include <bits/stdc++.h>
using namespace std;
const int N=2005;
int m,n,k,l,d;
struct hallways
{
int w,p;
} a[N],b[N];
bool cmp(hallways a,hallways b){return a.w > b.w;}
bool cmp1(hallways a,hallways b){return a.p < b.p;}
int main()
{
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
for(int i=1; i<=d; i++)
{
int x,y,p,q;
scanf("%d%d%d%d",&x,&y,&p,&q);
int xx=min(x,p),yy=min(y,q);
if(y==q)
{
a[xx].p=xx;
a[xx].w++;
}
else
{
b[yy].p=yy;
b[yy].w++;
}
}
sort(a+1,a+n+1,cmp);
sort(b+1,b+m+1,cmp);
sort(a+1,a+k+1,cmp1);
sort(b+1,b+l+1,cmp1);
for(int i=1; i<=k; i++) printf("%d ",a[i].p);
printf("\n");
for(int i=1; i<=l; i++) printf("%d ",b[i].p);
return 0;
}
所以问题是出在哪里呢??!