1080. Graduate Admission (30)
来源:互联网 发布:csgo和cf对比 知乎 编辑:程序博客网 时间:2024/05/26 20:20
1080. Graduate Admission (30)
考察排序
#include <iostream>#include <vector>#include <algorithm>using namespace std;struct node{ int id; double ge; double gi; double gf; vector<int> choice; int admin; int rank;};bool comp(const node &a,const node &b){ if(a.gf!=b.gf) return a.gf>b.gf; else return a.ge>b.ge;}int main(){ int n,m,k; vector<node> applicants; vector<int> quota; vector<vector<int>> ans(200); cin>>n>>m>>k; for(int i=0;i<m;++i) { int temp; cin>>temp; quota.push_back(temp); } for(int i=0;i<n;++i) { node temp; temp.id=i; cin>>temp.ge>>temp.gi; for(int i=0;i<k;++i) { int s; cin>>s; temp.choice.push_back(s); } temp.gf=(temp.ge+temp.gi)/2; applicants.push_back(temp); } sort(applicants.begin(),applicants.end(),comp); applicants[0].rank=1; for(int i=1;i<(int)applicants.size();++i) { if(applicants[i].gf==applicants[i-1].gf&&applicants[i].ge==applicants[i-1].ge) applicants[i].rank=applicants[i-1].rank; else applicants[i].rank=i+1; } for(int i=0;i<(int)applicants.size();++i) { auto c=applicants[i].choice.begin(); bool isend=false; while(c!=applicants[i].choice.end()) { if(i!=0&"a[*c]<=0&&applicants[i-1].admin==*c&&applicants[i-1].rank==applicants[i].rank) { ans[*c].push_back(applicants[i].id); quota[*c]--;applicants[i].admin=*c; isend=true;break; } if(quota[*c]>0)break; ++c; } if(isend)continue; if(c!=applicants[i].choice.end()) { ans[*c].push_back(applicants[i].id); quota[*c]--;applicants[i].admin=*c; } } for(int i=0;i<m;++i) { sort(ans[i].begin(),ans[i].end()); for(auto it=ans[i].begin();it!=ans[i].end();++it) it==ans[i].end()-1?cout<<*it:cout<<*it<<" "; cout<<endl; } return 0;}
0 0
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- 1080. Graduate Admission (30)
- Swift Array的高级使用
- Velocity 模版引擎的使用
- 【自招经验】梦碎自招,殊途同归自妖娆
- innodb_flush_log_at_trx_commit 参数
- 深入理解Java 8 Lambda-语言篇
- 1080. Graduate Admission (30)
- 项目实战:借鉴Android API源码(Splitter-split和TextView-setText),不惧NullPointerException(文末彩蛋)
- 防守式编程的艺术
- JS-前端实现图片上传
- java泛型从头开始
- 可视化展示,WebGL技术
- centos下的redis的安装
- Android ProgressBar 显示在Title上面
- 常用的正则表达式