6,7,10没有通过,求大佬指教
查看原帖
6,7,10没有通过,求大佬指教
646754
MarisaSpark楼主2021/12/26 09:42
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
class member
{
	public:
		string name;
		string post;
		long long contribution;
		int level;
		int n;
		friend istream& operator >>(istream &input,member &people);
		friend ostream& operator <<(ostream &output,member &people);
};
void change(int number);
int state(string str);
bool compare1(member a,member b);
bool compare2(member a,member b);
member people[110];
int main()
{
	int number;
	cin>>number;
	for(int i=0;i<number;i++)
	{
		cin>>people[i];
		people[i].n=i+1;
	}
	sort(people,people+number-1,compare1);
	change(number);
	sort(people,people+number-1,compare2);
	for(int i=0;i<number;i++)
	{
		cout<<people[i]<<endl;
	}
	return 0;
}
istream& operator >>(istream &input,member &people)
{
	input>>people.name>>people.post>>people.contribution>>people.level;
	return input;
}
ostream& operator <<(ostream &output,member &people)
{
	output<<people.name<<" "<<people.post<<" ";
	output<<people.level;
	return output;
}
void change(int number)
{
	int order=0;
	for(int i=0;i<number;i++)
	{
		if(people[i].post!="BangZhu"&&people[i].post!="FuBangZhu"&&people[i].name!="absi2011")
		{
			order++;
			if(order<=2)
			{
				people[i].post="HuFa";
			}
			else if(order>2&&order<=6)
			{
				people[i].post="ZhangLao";
			}
			else if(order>6&&order<=13)
			{
				people[i].post="TangZhu";
			}
			else if(order>13&&order<=38)
			{
				people[i].post="JingYing";
			}
			else
			{
				people[i].post="BangZhong";
			}
		}
	}
}
int state(string str)
{
	if(str=="BangZhu")
	{
		return 1;
	}
	else if(str=="FuBangZhu")
	{
		return 2;
	}
	else if(str=="HuFa")
	{
		return 3;
	}
	else if(str=="ZhangLao")
	{
		return 4;
	}
	else if(str=="TangZhu")
	{
		return 5;
	}
	else if(str=="JingYing")
	{
		return 6;
	}
	else if(str=="BangZhong")
	{
		return 7;
	}
}
bool compare1(member a,member b)
{
	if(a.contribution!=b.contribution)
	{
		return a.contribution>b.contribution;
	}
	else if(a.contribution==b.contribution)
	{
		return a.n<b.n;
	}
}
bool compare2(member a,member b)
{
	if(state(a.post)!=state(b.post))
	{
		return state(a.post)<state(b.post);
	}
	else if(state(a.post)==state(b.post))
	{
		if(a.level!=b.level)
		{
			return a.level>b.level;
		}
		else if(a.level==b.level)
		{
			return a.n<b.n;
		}
	}
}
2021/12/26 09:42
加载中...