【HDOJ】1236 -> 排名
2013-08-17 09:07
281 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1236
心得:
被WA四次的题,主要难点在于比较函数的写法上。如果成绩不同则按成绩降序排,成绩相同则按学号升序排。
代码:
#include <iostream>
#include <algorithm>
using namespace std;
typedef struct{char ID[21];int score;bool pass;}Data;
bool cmp(const Data &d1,const Data &d2){
if(d1.score!=d2.score) return d1.score>d2.score;
else return strcmp(d1.ID,d2.ID)<0?1:0;
}
int main(){
int n,m,g,i,j,s[10],num,t,sum;
char id[21];
Data d[1000];
while(cin>>n,n){
sum=0;
memset(d,NULL,sizeof(d));
cin>>m>>g;
for(i=0;i<m;i++)
cin>>s[i];
for(i=0;i<n;i++){
cin>>id>>num;
memcpy(d[i].ID,id,sizeof(id));
d[i].score=0;
for(j=0;j<num;j++){
cin>>t;
d[i].score+=s[t-1];
}
if(d[i].score>=g) {d[i].pass=true;sum++;}
else d[i].pass=false;
}
sort(d,d+n,cmp);
cout<<sum<<endl;
for(i=0;i<n;i++){
if(d[i].pass==true) cout<<d[i].ID<<" "<<d[i].score<<endl;
}
}
return 0;
}
心得:
被WA四次的题,主要难点在于比较函数的写法上。如果成绩不同则按成绩降序排,成绩相同则按学号升序排。
代码:
#include <iostream>
#include <algorithm>
using namespace std;
typedef struct{char ID[21];int score;bool pass;}Data;
bool cmp(const Data &d1,const Data &d2){
if(d1.score!=d2.score) return d1.score>d2.score;
else return strcmp(d1.ID,d2.ID)<0?1:0;
}
int main(){
int n,m,g,i,j,s[10],num,t,sum;
char id[21];
Data d[1000];
while(cin>>n,n){
sum=0;
memset(d,NULL,sizeof(d));
cin>>m>>g;
for(i=0;i<m;i++)
cin>>s[i];
for(i=0;i<n;i++){
cin>>id>>num;
memcpy(d[i].ID,id,sizeof(id));
d[i].score=0;
for(j=0;j<num;j++){
cin>>t;
d[i].score+=s[t-1];
}
if(d[i].score>=g) {d[i].pass=true;sum++;}
else d[i].pass=false;
}
sort(d,d+n,cmp);
cout<<sum<<endl;
for(i=0;i<n;i++){
if(d[i].pass==true) cout<<d[i].ID<<" "<<d[i].score<<endl;
}
}
return 0;
}
相关文章推荐
- HDOJ 1236 排名(排序)(浙大2005研究生复试)
- HDOJ 1236 排名
- HDOJ 1236,九度 :排名 简单的排序
- HDOJ 排名 1236
- HDOJ 1236 排名(结构体成员的 sort 排序方法)
- HDOJ 1236 排名
- hdoj 1236 排名
- HDOJ 1236 排名(练耐心题)
- hdoj 1236 排名 【结构体】
- HDOJ 1236 排名(练耐心题)
- hdoj1236排名(sort快排,结构体)
- HDOJ1236 排名
- HDOJ 1236 排名
- hdoj 排名 1236 (简单排序)
- (ZJU-2005复试)-HDOJ-1236-排名
- HDOJ 1236 排名,C语言结构体版的
- HDOJ1236 排名解题报告
- HDOJ 1236 排名
- HDOJ 5596-GTW likes gt【思维题】
- HDOJ2093 考试排名