题意:
作为2013年699万应届毕业生中的一员,由于宏观经济的不景气,小明在毕业当天就华丽丽地失业了!
经历了千难万苦的求职过程,小明特别能理解毕业生的就业之难,所以,他现在准备创建一家专门针对IT人才的求职中介公司——非诚勿扰人力资源开发有限公司。
基于工作的需要,小明根据求职学生的简历描述为每人评定了一个综合能力值,能力值是一个小于等于20的正整数,值越高表示能力越强。当有公司试图招聘
IT人员的时候(每次只招聘1名),需要提出一个综合能力的最低需求,若人才库中有符合要求的人才,则一定能成功招聘。当然,若有多名学生同时满足招聘公
司的需求,鉴于高能力人才的稀缺,小明总是优先把能力值低的人才推荐过去;如果依然有多名人员符合要求,则小明就把其中最早来求职的那位学生推荐过去。
需要说明的是,刚开始的时候,公司的人才库为空,而且一名学生只能和一个企业签约,如果推荐成功,则该名学生的信息需要从人才库中删除。
链接:点我
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 #define MOD 1000000007 10 #define pb(a) push_back(a) 11 const int INF=0x3f3f3f3f; 12 const double eps=1e-5; 13 typedef long long ll; 14 #define cl(a) memset(a,0,sizeof(a)) 15 #define ts printf("***** "); 16 const int MAXN=1010; 17 int n,m,tt,cnt; 18 char ss[MAXN][100]; 19 int val[MAXN]; 20 bool vis[MAXN]; 21 int main() 22 { 23 int i,j; 24 #ifndef ONLINE_JUDGE 25 freopen("1.in","r",stdin); 26 #endif 27 scanf("%d",&tt); 28 int ca=1; 29 while(tt--) 30 { 31 printf("Case #%d: ",ca++); 32 cl(vis); 33 scanf("%d",&n); 34 int num=0,tot=0; 35 char s[100]; 36 for(j=1;j<=n;j++) 37 { 38 scanf("%s",s); 39 if(s[0]=='A') 40 { 41 scanf("%s %d",&ss[tot],&val[tot]); 42 tot++; 43 num++; 44 printf("%d ",num); 45 46 } 47 else 48 { 49 int v; 50 scanf("%d",&v); 51 int k=-1; 52 for(i=0;i<tot;i++) 53 { 54 if(!vis[i]&&v<=val[i]) 55 { 56 if(k==-1||val[k]>val[i]) 57 { 58 k=i; 59 } 60 } 61 } 62 if(k==-1)printf("WAIT... "); 63 else 64 { 65 printf("%s ",ss[k]); 66 vis[k]=1; 67 num--; 68 } 69 } 70 71 } 72 } 73 }