ZJU-PAT 1080. Graduate Admission (30) 浙大2014年上机复试第四题
2014-04-04 09:37
471 查看
#include<iostream> #include<algorithm> #include<cstdio> #include<vector> using namespace std; const int maxn=40005; const int maxm=101; int n,m,k; int num[maxm]; int lastRank[maxm]; vector<int> mm[maxm]; struct stu { int id; int GE,GI,fin; int pre[6]; int rank; }; stu tt[maxn]; bool cmp(stu a,stu b) { if(a.fin!=b.fin) return a.fin>b.fin; else return a.GE>b.GE; } void Init() { scanf("%d%d%d",&n,&m,&k); for(int i=0; i<m; i++) scanf("%d",&num[i]); for(int i=0; i<n; i++) { scanf("%d%d",&tt[i].GE,&tt[i].GI); tt[i].fin=(tt[i].GE+tt[i].GI); tt[i].id=i; for(int j=0; j<k; j++) { scanf("%d",&tt[i].pre[j]); } } sort(tt,tt+n,cmp); for(int i=0; i<maxm; i++) mm[i].clear(); tt[0].rank=0; for(int i=1; i<n; i++) { if(tt[i].fin==tt[i-1].fin && tt[i].GE==tt[i-1].GE) tt[i].rank=tt[i-1].rank; else tt[i].rank=i; } } void Select() { for(int i=0; i<n; i++) { int curstuid=tt[i].id; for(int j=0; j<k; j++) { int schoolid=tt[i].pre[j]; if(mm[schoolid].size()<num[schoolid]) { mm[schoolid].push_back(curstuid); lastRank[schoolid]=tt[i].rank; //当前学生的排名 非tt[curstuid].rank break; } else if(mm[schoolid].size()>0) { /*int laststu=mm[schoolid].back(); 错误同上所述 if(tt[laststu].rank==tt[i].rank) { mm[schoolid].push_back(curstuid); break; }*/ if(tt[i].rank==lastRank[schoolid]) { mm[schoolid].push_back(curstuid); break; } } } } } void output() { for(int i=0; i<m; i++) { if(mm[i].size()==0) printf("\n"); else { sort(mm[i].begin(),mm[i].end()); for(int j=0; j<mm[i].size(); j++) { if(j==0)printf("%d",mm[i][j]); else printf(" %d",mm[i][j]); } printf("\n"); } } } int main() { Init(); Select(); output(); return 0; }
相关文章推荐
- ZJU-PAT 1078. Hashing (25) 浙大2014年上机复试第二题
- pat 1080. Graduate Admission (30) 浙大复试上机第四题
- ZJU-PAT 1079. Total Sales of Supply Chain (25) 浙大2014年上机复试第三题
- ZJU-PAT 1057. Stack (30) 浙大2013年上机复试第三题
- ZJU-PAT 1077. Kuchiguse (20) 浙大2014年上机复试第一题
- ZJU-PAT 1057. Stack (30)---17有3组超时 浙大2013年上机复试第三题
- ZJU-PAT 1054. The Dominant Color (20) 浙大2013年上机复试第一题
- ZJU-PAT 1055. The World's Richest (25) 浙大2013年上机复试第二题
- 浙大2013复试:PAT 1057. Stack (30)
- pat 1057. Stack (30) 浙江大学复试上机最后一题
- 浙大PAT考试1077~1080(2014上机复试题目)
- 浙大2012上机 PAT1034. Head of a Gang (30)
- 浙大PAT考试1077~1080(2014上机复试题目)
- 1080. Graduate Admission (30) (模拟排序啊 ZJU_PAT)
- 2007浙大复试上机考试题目2--统计字符
- 2005浙大上机复试解题报告
- 十三、通过浙大上机复试试题学SPFA 算法
- 浙大2012上机 PAT 1033. To Fill or Not to Fill (25)
- 浙大pat | 浙大pat 牛客网甲级1048 Head of a Gang (30)最大强联通分量
- 并查集的应用(05年浙大复试上机题畅通工程)