PAT A1080 graduate admission (30)
来源:互联网 发布:广东省软件协会 编辑:程序博客网 时间:2024/06/05 22:33
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct stut{
int ge,gi,totl,uid;
int apply[5];
int schl;
int rank;
}stu[40010];
struct sch{
int er;
int stuid[40010];
int num;
}school[102];
int cmp(stut a,stut b){
if(a.totl!=b.totl) return a.totl>b.totl;
else return a.ge>b.ge;
}
int cmp1(int a,int b){
return a<b;
}
int main(){
int n,m,k,i,j;
int quo[105];
scanf("%d%d%d",&n,&m,&k);
for(i=0;i<m;i++){
scanf("%d",&quo[i]);
}
for(i=0;i<m;i++){//initial
school[i].num=0;
}
for(i=0;i<n;i++){
scanf("%d%d",&stu[i].ge,&stu[i].gi);
stu[i].totl=(stu[i].ge+stu[i].gi)/2;
stu[i].uid=i;
for(j=0;j<k;j++){
scanf("%d",&stu[i].apply[j]);
}
}
sort(stu,stu+n,cmp);
for(i=0;i<n;i++){
if(i==0) stu[i].rank=1;
else if(stu[i].totl==stu[i-1].totl && stu[i].ge==stu[i-1].ge) stu[i].rank=stu[i-1].rank;
else stu[i].rank=i+1;
for(j=0;j<k;j++){
if(quo[stu[i].apply[j]]>0){
stu[i].schl=stu[i].apply[j];
school[stu[i].apply[j]].er=stu[i].rank;
school[stu[i].apply[j]].stuid[school[stu[i].apply[j]].num++]=stu[i].uid;
quo[stu[i].apply[j]]--;
break;
}else if(quo[stu[i].apply[j]]==0 && stu[i].rank==school[stu[i].apply[j]].er){
school[stu[i].apply[j]].stuid[school[stu[i].apply[j]].num++]=stu[i].uid;
break;
}
}
}
for(i=0;i<m;i++){
sort(school[i].stuid,school[i].stuid+school[i].num,cmp1);
if(school[i].num>0){
for(j=0;j<school[i].num-1;j++){
printf("%d ",school[i].stuid[j]);
}
printf("%d\n",school[i].stuid[j]);
}else printf("\n");
}
return 0;
}
#include<algorithm>
#include<cstring>
using namespace std;
struct stut{
int ge,gi,totl,uid;
int apply[5];
int schl;
int rank;
}stu[40010];
struct sch{
int er;
int stuid[40010];
int num;
}school[102];
int cmp(stut a,stut b){
if(a.totl!=b.totl) return a.totl>b.totl;
else return a.ge>b.ge;
}
int cmp1(int a,int b){
return a<b;
}
int main(){
int n,m,k,i,j;
int quo[105];
scanf("%d%d%d",&n,&m,&k);
for(i=0;i<m;i++){
scanf("%d",&quo[i]);
}
for(i=0;i<m;i++){//initial
school[i].num=0;
}
for(i=0;i<n;i++){
scanf("%d%d",&stu[i].ge,&stu[i].gi);
stu[i].totl=(stu[i].ge+stu[i].gi)/2;
stu[i].uid=i;
for(j=0;j<k;j++){
scanf("%d",&stu[i].apply[j]);
}
}
sort(stu,stu+n,cmp);
for(i=0;i<n;i++){
if(i==0) stu[i].rank=1;
else if(stu[i].totl==stu[i-1].totl && stu[i].ge==stu[i-1].ge) stu[i].rank=stu[i-1].rank;
else stu[i].rank=i+1;
for(j=0;j<k;j++){
if(quo[stu[i].apply[j]]>0){
stu[i].schl=stu[i].apply[j];
school[stu[i].apply[j]].er=stu[i].rank;
school[stu[i].apply[j]].stuid[school[stu[i].apply[j]].num++]=stu[i].uid;
quo[stu[i].apply[j]]--;
break;
}else if(quo[stu[i].apply[j]]==0 && stu[i].rank==school[stu[i].apply[j]].er){
school[stu[i].apply[j]].stuid[school[stu[i].apply[j]].num++]=stu[i].uid;
break;
}
}
}
for(i=0;i<m;i++){
sort(school[i].stuid,school[i].stuid+school[i].num,cmp1);
if(school[i].num>0){
for(j=0;j<school[i].num-1;j++){
printf("%d ",school[i].stuid[j]);
}
printf("%d\n",school[i].stuid[j]);
}else printf("\n");
}
return 0;
}
0 0
- pat-A1080. Graduate Admission (30)
- PAT A1080. Graduate Admission (30)
- PAT A1080 graduate admission (30)
- PAT A1080. Graduate Admission (30)
- PAT-A1080. Graduate Admission (30)(排序)
- A1080. Graduate Admission (30)
- A1080. Graduate Admission (30)
- PAT A1080 Gradate Admission
- PAT 1080. Graduate Admission (30)
- PAT 1080. Graduate Admission (30)
- PAT 1080. Graduate Admission (30)
- 【PAT】1080. Graduate Admission (30)
- 1080. Graduate Admission (30) PAT
- PAT 1015Graduate Admission (30)
- pat-1080. Graduate Admission (30)
- PAT 1080-Graduate Admission (30)
- PAT (Advanced) 1080. Graduate Admission (30)
- PAT Advanced Level 1080. Graduate Admission (30)
- 邻接表和邻接矩阵手写简洁代码DFS BFS
- DOM中元素节点、属性节点、文本节点的理解
- TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用
- live555学习笔记10-h264 RTP传输详解(2)
- java 类的高级特性
- PAT A1080 graduate admission (30)
- TCP的拥塞控制
- 软件安装
- getElementsByClassName兼容IE低版本
- TCP滑动窗口与回退N针协议
- 使用Gradle编译执行Gague项目
- 第九天,System类获取系统环境变量和系统参数
- Http的报文结构
- live555学习笔记11-h264 RTP传输详解(3)