记录编号 27917 评测结果 AAAAAAAAAA
题目名称 [NOIP 2005]谁拿了最多奖学金 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.031 s
提交时间 2011-10-10 19:35:17 内存使用 0.19 MiB
显示代码纯文本
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("scholar.in");
ofstream fout("scholar.out");
class Student
{
public:
	string name;//學生姓名
	unsigned int final;//期末成績
	unsigned int Class;//班級評議
	bool cadre; //是否幹部
	bool west; //是否西部學生
	short int lunwen;//論文數量
	long long total;	
	Student()
	{
		cadre=false;
		west=false;
		total=0;
	}
}N[101];
int n;

int maxn=0;
int maxx=0;
long long s=0;

void init()
{
	char chr;
	fin>>n;
	for (int i=1;i<=n;i++)
	{
		fin>>N[i].name>>N[i].final>>N[i].Class;
		fin>>chr;
		if (chr=='Y') N[i].cadre=true;
		fin>>chr;
		if (chr=='Y') N[i].west=true;
		fin>>N[i].lunwen;
	}
	return;
}

void compute(int num)
{
	if (N[num].final>80 && N[num].lunwen>=1) N[num].total+=8000;
	if (N[num].final>85 && N[num].Class>80) N[num].total+=4000;
	if (N[num].final>90) N[num].total+=2000;
	if (N[num].final>85 && N[num].west) N[num].total+=1000;
	if (N[num].Class>80 && N[num].cadre) N[num].total+=850;
	
	if (N[num].total>maxn) 
	{
		maxn=N[num].total;
		maxx=num;
	}
	s+=N[num].total;
}

int main()
{
	init();
	for (int i=1;i<=n;i++)
		compute(i);
	fout<<N[maxx].name<<endl<<N[maxx].total<<endl<<s<<endl;
	return 0;
}