为什么输出全是零?求大佬解答
查看原帖
为什么输出全是零?求大佬解答
922691
Hisy楼主2023/9/22 21:12
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
struct coord{
	int row,col;
	friend istream &operator>>(istream &in,coord point){
		in>>point.row>>point.col;
		return in; 
	};
};
vector<pair<coord,coord>> speaker_row,speaker_col;
int maxn,maxm,num;
coord limit;
pair<coord,coord> temp;
pair<int,int> worth_row[2002],worth_col[2002];
void inputing(void){
	scanf("%d %d %d %d %d",&maxn,&maxm,&limit.row,&limit.col,&num);
	while(num--){
		cin>>temp.first,temp.second;
		if(temp.first.row==temp.second.row){
			speaker_row.push_back(temp);
		}else{
			speaker_col.push_back(temp);
		};
	};
};
void earnings(void){
	for(int iter=0;iter<speaker_row.size();++iter){
		int line=speaker_row[iter].first.row;
		++worth_col[line].first;
		worth_col[line].second=line;
	};
	for(int iter=0;iter<speaker_col.size();++iter){
		int line=speaker_col[iter].first.row;
		++worth_row[line].first;
		worth_row[line].second=line;
	};
};
bool compare(pair<int,int> cmp1,pair<int,int> cmp2){
	return cmp1.first>cmp2.first;
};
void algorithm(void){
	earnings();
	sort(worth_row+1,worth_row+maxn+1,compare);
	sort(worth_col+1,worth_col+maxm+1,compare);
	for(int iter=1;iter<=limit.row;++iter){
		printf("%d ",worth_row[iter].second);
	};
	puts("");
	for(int iter=1;iter<=limit.col;++iter){
		printf("%d ",worth_col[iter].second);
	};
};
int main(int argc,char **argv){
	inputing();
	earnings();
	algorithm();
	return 0;
};
2023/9/22 21:12
加载中...