样例都没过却有10分......
查看原帖
样例都没过却有10分......
494992
underline__jian楼主2021/11/11 21:47
#include<bits/stdc++.h>
using namespace std;
int m,n,k,l,d,x[5001],y[5001],dx[5001],dy[5001];
bool flag;
int main(){
	cin>>m>>n>>k>>l>>d;
	for(int i=1;i<=d;i++){
		int h1,h2,l1,l2;
		scanf("%d%d%d%d",&h1,&l1,&h2,&l2);
		if(h1==h2){ //横轴相等 
			x[min(l1,l2)]++;
			dx[min(l1,l2)]++; //竖线隔开 
		}
		else if(l1==l2){ //纵轴相等 
			y[min(h1,h2)]++;
			dy[min(h1,h2)]++; //横线隔开 
		}
	}
	for(int i=1;i<m;i++)
		for(int j=i+1;j<=m;j++)
			if(x[i]<x[j]) swap(x[i],x[j]); //选最优横线
	for(int i=1;i<n;i++)
		for(int j=i+1;j<=n;j++)
			if(y[i]<y[j]) swap(y[i],y[j]); //选最优竖线
	for(int i=1;i<=m;i++)
		if(dx[i]>=x[k]){ //大于第k大的
			if(!flag){
				printf("%d",i);
				flag=true;
			}
			else printf("%d ",i);
		}
	printf("\n");
	flag=false;
	for(int i=1;i<=n;i++)
		if(dy[i]>=y[l]){ //大于第l大的 
			if(!flag){
				printf("%d",i);
				flag=true;
			}
			else printf("%d ",i);
		}
	return 0;
}
2021/11/11 21:47
加载中...