10分......求调
查看原帖
10分......求调
1040830
ss_yangyucheng楼主2024/4/20 18:41
#include<bits/stdc++.h>
using namespace std;
int x[1001][1001],y[1001][1001];
struct zb{
	int x;
	int y;
	int t=0;
};
bool cmp(zb a,zb b){
	if(a.t>=b.t)return 0;
	else return 1;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int m,n,k,l,d;
	cin>>m>>n>>k>>l>>d;
	int a[d+1][5];
	for(int j=1;j<=d;j++){
		cin>>a[j][1]>>a[j][2]>>a[j][3]>>a[j][4];
		if(a[j][1]==a[j][3]){
			a[j][0]=0;y[max(a[j][2],a[j][4])][min(a[j][2],a[j][4])]++;
		}
		else{
			a[j][0]=1;x[max(a[j][1],a[j][3])][min(a[j][1],a[j][3])]++;
		}
	}
	zb p[k+1];
	int u=0;
	for(int j=1;j<=n+abs(n-m)+1;j++){
		for(int i=1;i<=m+abs(n-m)+1;i++){
			if(x[j][i]>0){
				p[++u].t=x[j][i];
				p[u].x=j;
				p[u].y=i;
			}
		}
		if(u==k)break;
	}
	sort(p+1,p+1+k,cmp);
	for(int j=1;j<=k;j++){
		cout<<min(p[j].x,p[j].y)<<" ";
	}
	cout<<endl;
	zb q[l+1];
	int v=0;
	for(int j=1;j<=n+abs(n-m)+3;j++){
		for(int i=1;i<=m+abs(n-m)+3;i++){
			if(y[j][i]>0){
				q[++v].t=y[j][i];
				q[v].x=j;
				q[v].y=i;
			}
		}
		if(v==l)break;
	}
	sort(q+1,q+1+k,cmp);
	for(int j=1;j<=l;j++){
		cout<<min(q[j].x,q[j].y)<<" ";
	}
	return 0;
}

有些地方有赘言,请多见谅。

2024/4/20 18:41
加载中...