1 solutions

  • 0
    @ 2025-11-5 19:18:18

    C++ :

    #include<iostream>
    #include<algorithm>
    #include<map>
    #include<vector>
    #include<set>
    #include<string>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    #include<stack>
    using namespace std;
    #define ll long long
    #define ull unsigned long long
    #define pb push_back
    #define pii pair<int,int>
    #define all(A) A.begin(), A.end()
    #define fi first
    #define se second
    #define MP make_pair
    #define rep(i,n) for(register int i=0;i<(n);++i)
    #define repi(i,a,b) for(register int i=int(a);i<=(b);++i)
    #define repr(i,b,a) for(register int i=int(b);i>=(a);--i)
    template<typename T>
    inline T read(){
        T s=0,f=1; char ch = getchar();
        while(!isdigit(ch)) {if(ch == '-') f=-1;ch = getchar();}
        while(isdigit(ch)) {s=(s<<3)+(s<<1)+ch-48;ch = getchar();}
        return s*f;
    }
    #define gn() read<int>()
    #define gl() read<ll>()
    template<typename T>
    inline void print(T x) {
        if(x<0) putchar('-'), x=-x;
        if(x>9) print(x/10);
        putchar(x%10+'0');
    }
    ////////////////////////////////////////////////////////////////////////
    const int N=2e5+100;
    int X[N],Y[N];
    int id[N];
    vector<int> ans;
    ////////////////////////////////////////////////////////////////////////
    int main(){
        int n=gn(),m=gn(),k=gn(),l=gn(),d=gn();
        repi(i,1,d){
            int x=gn(),y=gn(),p=gn(),q=gn();
            if(x==p){
                ++Y[min(y,q)];
            } else {
                ++X[min(x,p)];
            }
        }
        repi(i,1,n)id[i]=i;
        sort(id+1,id+1+n,[](int x,int y){
            return X[x]>X[y];
        });
        for(int i=1;i<=k;++i){
            ans.pb(id[i]);
        }
        sort(all(ans));
         for(int i=0,len=ans.size();i<len;++i){
            printf("%d",ans[i]);
            if(i!=len-1)printf(" ");
        }
        putchar(10);
        ans.clear();
        repi(i,1,m)id[i]=i;
        sort(id+1,id+1+m,[](int x,int y){
            return Y[x]>Y[y];
        });
        for(int i=1;i<=l;++i){
            ans.pb(id[i]);
        }
        sort(all(ans));
        for(int i=0,len=ans.size();i<len;++i){
            printf("%d",ans[i]);
            if(i!=len-1)printf(" ");
        }
        putchar(10);
    }
    
    • 1

    Information

    ID
    19223
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By