题解
2023-08-17 08:48:24
发布于:广东
39阅读
0回复
0点赞
话不多说,请看题解~
#include<bits/stdc++.h>
using namespace std;
int m,n,k,l,d;
int x[1001],y[1001];//横纵坐标
int c[1001],o[1001];//桶排
int main() {
cin>>m>>n>>k>>l>>d;
for(int i=1;i<=d;i++) {
int xi,yi,pi,qi;
cin>>xi>>yi>>pi>>qi;
if(xi==pi)
x[min(yi,qi)]++;//表示隔开这两排的价值
else
y[min(xi,pi)]++; //取min
}
for(int i=1;i<=k;i++){//桶排
int maxn=-1;//求最大值
int p;
for(int j=1;j<m;j++){
if(y[j]>maxn){
maxn=y[j];
p=j;
}
}
y[p]=0;
c[p]++;//桶排
}
for(int i=1;i<=l;i++){
int maxn=-1;
int p;
for(int j=1;j<n;j++){
if(x[j]>maxn){
maxn=x[j];
p=j;
}
}
x[p]=0;
o[p]++;
}
for(int i=0;i<1005;i++)
{
if(c[i])
cout<<i<<' ';
}
cout<<'\n'; // 养成好习惯,不用endl~
for(int i=0;i<1005;i++)
{
if(o[i])
cout<<i<<" ";
}
return 0;
}
这里空空如也
有帮助,赞一个