放上没审题之前的乱七八糟代码(还有40分!)
#include<bits/stdc++.h>
using namespace std;
struct p{
string name;
int zhiwei;
int d;
};
bool cmp(p a,p b){
if(a.zhiwei!=b.zhiwei){
return a.zhiwei>b.zhiwei;
}else{
return a.d>b.d;
}
}
int main(){
int n,q;string a;
cin>>n;
p s[n+1];
for(int i=1;i<=n;i++){
cin>>s[i].name;
cin>>a;
if(a=="BangZhu"){
s[i].zhiwei=8;
}
if(a=="FuBangZhu"){
s[i].zhiwei=7;
}
if(a=="HuFa"){
s[i].zhiwei=6;
}
if(a=="ZhangLao"){
s[i].zhiwei=5;
}
if(a=="TangZhu"){
s[i].zhiwei=4;
}
if(a=="JingYing"){
s[i].zhiwei=3;
}
if(a=="BangZhong"){
s[i].zhiwei=2;
}
cin>>q>>s[i].d;
}
sort(s+1,s+1+n,cmp);
// cout<<endl;
int sss=1;
for(int i=1;i<=n;i++){
cout<<s[i].name<<" ";
if(sss==1){
cout<<"BangZhu";
}else{
if(sss>1&&sss<=3){
cout<<"FuBangZhu";
}else{
if(sss>3&&sss<=5){
cout<<"HuFa";
}else{
if(sss>5&&sss<=9){
cout<<"ZhangLao";
}else{
if(sss>9&&sss<=16){
cout<<"TangZhu";
}else{
if(sss>16&&sss<=41){
cout<<"JingYing";
}else{
cout<<"BangZhong";
}
}
}
}
}
}
cout<<" "<<s[i].d<<endl;
sss++;
}
return 0;
}
审题后的(10分)。。
#include<bits/stdc++.h>
using namespace std;
int n;
struct student{
string name;
int job;//职位
int star;//帮贡
int level;//等级
};
bool cmp(student a,student b){
return a.star>b.star;
}
bool gmp(student a,student b){
if(a.job!=b.job){
return a.job<b.job;
}else{
if(a.level!=b.level)
return a.level>b.level;
else return false;
}
}
int main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
cin>>n;
string q;
student s[n+1];
for(int i=1;i<=n;i++){
cin>>s[i].name;
cin>>q;
if(q=="BangZhu")s[i].job=1;
else if(q=="FuBangZhu")s[i].job=2;
else if(q=="HuFa")s[i].job=3;
else if(q=="ZhangLao")s[i].job=4;
else if(q=="TangZhu")s[i].job=5;
else if(q=="JingYing")s[i].job=6;
else s[i].job=7;
cin>>s[i].star>>s[i].level;
}
//职位排序
sort(s+1,s+1+n,cmp);
int qq=1;
for(int i=1;i<=n;i++){
if(s[i].name=="absi2011"||s[i].job==1||s[i].job==2) continue;
if(qq>=1&&qq<=2) s[i].job=3;
else if(qq>2&&qq<=6) s[i].job=4;
else if(qq>6&&qq<=13) s[i].job=5;
else if(qq>13&&qq<=38) s[i].job=6;
else s[i].job=7;
qq++;
}
sort(s+1,s+n+1,gmp);
// cout<<endl;
for(int i=1;i<=n;i++){
cout<<s[i].name<<" ";
if(s[i].job==1)cout<<"BangZhu";
if(s[i].job==2)cout<<"FuBangZhu";
if(s[i].job==3)cout<<"HuFa";
if(s[i].job==4)cout<<"ZhangLao";
if(s[i].job==5)cout<<"TangZhu";
if(s[i].job==6)cout<<"JingYing";
if(s[i].job==7)cout<<"BangZhong";
cout<<" "<<s[i].level<<endl;
}
return 0;
}