召唤大佬! 为什么我的第一行输出会使1 感觉看起来没毛病啊
查看原帖
召唤大佬! 为什么我的第一行输出会使1 感觉看起来没毛病啊
1114927
Lolaandd楼主2023/12/6 22:39
#include<iostream>
#include<algorithm>

using namespace std;

const int N = 1020;


struct dot {
	int x;
	int y;
};//结构体 x储存大小 y储存原本的位置 方便排序后输出 

bool cmp( dot a,dot b){
	return a.x > b.x ;//true -> do not swap;
				//false -> swap; 
}
int main ()
{
	int m,n,k,l,d;
	cin >>m>>n>>k>>l>>d;//m行n列  k个横条 l个竖条 d组交头接耳 
 	dot col[N];//列 
 	dot row[N];//行 
	for (int i=1;i<=m;i++) row[i].y=i;
	for (int i=1;i<=n;i++) col[i].y=i;
	for (int i=0;i<d;i++)
	{
		int x1,y1,x2,y2;
		scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
		if(x1==x2) {//说话的人在同一行 
			int num = min(y1,y2);
			(col[num].x)++;
		} 
		if(y1==y2){//说话的人在同一列 
			int num = min(x1,x2);
			(row[num].x)++;
		}
	}
	sort(col,col+n+1,cmp);
	sort(row,row+m+1,cmp);
	for(int i=0;i<k;i++)
	{
		printf("%d",row[i].y);
		if(i!=k-1) printf(" ");
	}
	cout << endl;
	for(int i=0;i<l;i++)
	{
		printf("%d",col[i].y);
		if(i!=l-1) printf(" ");
	}
	return 0;
}
2023/12/6 22:39
加载中...