求助
查看原帖
求助
327272
Jacky1029楼主2021/12/12 11:45

各位大佬们,我这个50分的代码哪里错了?谢谢。

#include<iostream>
#include<algorithm>
using namespace std;
int m,n;
int k,l;//k=horizontal, l=vertical
int d;//n in other programs
int x[3000];
int y[3000]; 
int x1[3000];
int y1[3000]; 
int x2=0;
int y2=0;
int t[3000];
int f[3000];
int findx(int a){
	for(int i=0;i<m;i++){
		if(x[i]==a){
			x[i]=0;
			return i;
		}
	} 
}
int findy(int a){
	for(int i=0;i<n;i++){
		if(y[i]==a){
			y[i]=0;
			return i;
		}
	} 
}
int main(){
	cin>>m>>n>>k>>l>>d;
	int k1=k;
	int l1=l; 
	for(int i=0;i<d;i++){
		int tmp1,tmp2;
		int tmp3,tmp4;
		cin>>tmp1>>tmp2;
		cin>>tmp3>>tmp4;
		if(tmp1==tmp3){
			y[min(tmp2,tmp4)]++;
			//cout<<min(tmp2,tmp4)<<" "<<y[min(tmp2,tmp4)]<<endl;
		}else if(tmp2==tmp4){
			x[min(tmp1,tmp3)]++;
			//cout<<min(tmp1,tmp3)<<" "<<x[min(tmp1,tmp3)]<<endl;
		}
	}
	for(int i=0;i<max(m,n);i++){
		if(x[i]!=0){
			x1[x2]=x[i];
			x2++;
		}
		if(y[i]!=0){
			y1[y2]=y[i];
			y2++;
		}
	}
	sort(x1,x1+x2);
	sort(y1,y1+y2); 
	int t1=0,f1=0; 
	for(int i=x2-1;i>=0&&k>=0;i--){
		t[t1]=findx(x1[i]);
		k--;
		t1++;
	}
	for(int i=y2-1;i>=0&&l>=0;i--){
		f[f1]=findy(y1[i]);
		l--;
		f1++;
	}
	sort(t,t+t1);
	sort(f,f+f1);
	for(int i=0;i<t1;i++){
		cout<<t[i]<<" ";
	}
	cout<<endl;
	for(int i=0;i<f1;i++){
		cout<<f[i]<<" ";
	}
	return 0;
} 
2021/12/12 11:45
加载中...