题解
2023-08-17 08:48:24
发布于:广东
66阅读
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; 
}
这里空空如也


有帮助,赞一个