2 solutions

  • 1
    @ 2026-2-6 11:48:22
    #include<bits/stdc++.h>
    using namespace std;
    typedef int in;
    struct Stu{
        int shuxue,yinyu,totel,id;
    };
    Stu a[11110];
    bool st[11110];
    bool cmp1(Stu a,Stu b)
    {
        if(a.shuxue>b.shuxue) return 1;
        if(a.shuxue==b.shuxue&&a.id<b.id) return 1;
        return 0; 
    }
    bool cmp2(Stu a,Stu b)
    {
        if(a.yinyu>b.yinyu) return 1;
        if(a.yinyu==b.yinyu&&a.id<b.id) return 1;
        return 0; 
    }
    bool cmp3(Stu a,Stu b)
    {
        if(a.totel>b.totel) return 1;
        if(a.totel==b.totel&&a.id<b.id) return 1;
        return 0; 
    }
    int main()
    {
        in n,x,y,z;cin>>n>>x>>y>>z;
        for(in i=1;i<=n;i++)
        {
            cin>>a[i].shuxue;
            a[i].id=i;
        }
        for(in i=1;i<=n;i++)
        {
            cin>>a[i].yinyu;
            a[i].totel=a[i].yinyu+a[i].shuxue;
        }
        sort(a+1,a+n+1,cmp1);
        for(in i=1;i<=x;i++)
        {
            st[a[i].id]=1;
            a[i].shuxue=a[i].yinyu=a[i].totel=-1;
            //cout<<a[i].id<<" ";
        }
        sort(a+1,a+n+1,cmp2);
        for(in i=1;i<=y;i++)
        {
            st[a[i].id]=1;
            a[i].shuxue=a[i].yinyu=a[i].totel=-1;
        }
        sort(a+1,a+n+1,cmp3);
        for(in i=1;i<=z;i++)
        {
            st[a[i].id]=1;
            a[i].shuxue=a[i].yinyu=a[i].totel=-1;
            //cout<<a[i].id<<" ";
        }
        for(in i=1;i<=n;i++)
        {
            if(st[i]==1)
            {
                cout<<i<<endl;
            }
        }
        return 0;
    }
    

    Information

    ID
    2613
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    6
    Accepted
    4
    Uploaded By