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;
    }
    
    • 1
      @ 2026-2-6 11:23:09
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1010;
      struct Node{
      	int yingyu,shuxue,total,id;
      }s[N];
      bool st[N];
      bool cmp1(Node a,Node b)
      {
      	if(a.shuxue>b.shuxue) return 1;
      	if(a.shuxue==b.shuxue&&a.id<b.id) return 1;
      	return 0;
      } 
      bool cmp2(Node a,Node b)
      {
      	if(a.yingyu>b.yingyu) return 1;
      	if(a.yingyu==b.yingyu&&a.id<b.id) return 1;
      	return 0;
      } 
      bool cmp3(Node a,Node b)
      {
      	if(a.total>b.total) return 1;
      	if(a.total==b.total&&a.id<b.id) return 1;
      	return 0;	
      } 
      int main()
      {
      	int n,x,y,z;
      	cin>>n>>x>>y>>z;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>s[i].shuxue;
      		s[i].id=i;
      	}
      	for(int i=1;i<=n;i++)
      	{
      		cin>>s[i].yingyu;
      		s[i].total=s[i].shuxue+s[i].yingyu;
      	}
      	sort(s+1,s+n+1,cmp1);
      	for(int i=1;i<=x;i++)
      	{
      		st[s[i].id]=1;
      		s[i].yingyu=s[i].shuxue=s[i].total=-1;
      	}
      	sort(s+1,s+n+1,cmp2);
      	for(int i=1;i<=y;i++)
      	{
      		st[s[i].id]=1;
      		s[i].yingyu=s[i].shuxue=s[i].total=-1;
      	}
      	sort(s+1,s+n+1,cmp3);
      	for(int i=1;i<=z;i++)
      	{
      		st[s[i].id]=1;
      		s[i].yingyu=s[i].shuxue=s[i].total=-1;
      	}
      	for(int i=1;i<=n;i++)
      	{
      		if(st[i]==1)
      		{
      			cout<<i<<endl;
      		}
      	}
      	return 0;
      }
      
      • 1

      Information

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