2 solutions
-
1
#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