Codeforces Gym101606 E.Education (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))

 

E Education

 

这个题有点意思,就是找满足条件的最小价格里的最大值的人数,有点贪心的思想吧,一开始写错了,人群的那个不能排序,而且是最小价格里找能住下人最多的部门,让这个部门去住这个房间。在循环的时候处理一下,找出来符合条件的人群的最大数就可以了。代码写的巨丑。。。

 

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<queue>
 6 #include<set>
 7 #include<algorithm>
 8 #include<map>
 9 using namespace std;
10 const int INF=0x3f3f3f3f;
11 struct node{
12     int n;
13     int m;
14     int pos;
15     int flag;
16 }a[100000];
17 bool cmp(node a,node b){
18     return a.m<b.m;
19 }
20 int s[100000];
21 int ans[100000];
22 int flagg[100000];
23 int main(){
24     int d,b;
25     while(~scanf("%d%d",&d,&b)){
26             memset(flagg,0,sizeof(flagg));
27         for(int i=0;i<d;i++){
28             scanf("%d",&s[i]);
29             flagg[i]=1;
30         }
31         for(int i=0;i<b;i++){
32             a[i].pos=i+1;
33             a[i].flag=1;
34         }
35         for(int i=0;i<b;i++)
36             scanf("%d",&a[i].n);
37         for(int i=0;i<b;i++)
38             scanf("%d",&a[i].m);
39         sort(a,a+b,cmp);
40         int h=0;
41         for(int j=0;j<b;j++){
42             int maxx=-INF;int situ=-1;int ret=-1;
43             for(int i=0;i<d;i++){
44                 if(a[j].n>=s[i]&&a[j].flag==1&&flagg[i]==1){
45                     if(maxx<s[i]){
46                         maxx=s[i];
47                         ret=i;
48                         situ=j;
49                     }
50                 }
51             }
52             if(ret!=-1){
53                 ans[ret]=a[situ].pos;
54                 a[situ].flag=0;
55                 flagg[ret]=0;
56                 h++;
57             }
58         }
59         if(h<d)printf("impossible\n");
60         else{
61         for(int i=0;i<d;i++){
62             printf("%d",ans[i]);
63             if(i!=d-1)printf(" ");
64             else printf("\n");
65         }
66         }
67     }
68     return 0;
69 }

 

posted @ 2018-01-25 23:53  ZERO-  阅读(274)  评论(0编辑  收藏  举报