只过了样例的屑(附注释)
查看原帖
只过了样例的屑(附注释)
308800
Polynswin楼主2022/8/7 21:56

思路见注释

#include<bits/stdc++.h>
#define rint register int
#define mmt(a,b) memset(a,b,sizeof(a));
#define test(x) cout<<#x<<" = "<<x<<endl;
using namespace std;
const int inf=0x3f3f3f3f,maxn=1e5;
int n,m,k,l,d;
struct node{
	int val,idx;
}x[maxn],y[maxn];
bool cmp(node a,node b)
{
	return a.val>b.val;
}
signed main()
{
	rint i,j;
	cin>>n>>m>>k>>l>>d;
	for(i=1;i<maxn;i++)
		x[i].idx=y[i].idx=i;//初始化
	for(i=1;i<=d;i++)
	{
		int tx,ty,rx,ry;
		cin>>tx>>ty>>rx>>ry;
		if(tx==rx)y[min(ty,ry)].val++;//切该列能分开的人数++
		else x[min(tx,rx)].val++;
	}
	sort(x+1,x+n+1,cmp);//按能切开的人数排序
	sort(y+1,y+m+1,cmp);
	for(i=1;i<=k;i++)cout<<x[i].idx<<" ";
	cout<<endl;
	for(i=1;i<=l;i++)cout<<y[i].idx<<" ";
	return 0;
}

2022/8/7 21:56
加载中...