1. 程式人生 > >PKU 百煉OJ 獎學金

PKU 百煉OJ 獎學金

light algorithm cto else if lis clas math.h num algo

http://bailian.openjudge.cn/ss2017/A/

#include<iostream>
#include <cmath>
#include <math.h>
#include <vector>
#include <algorithm>
struct Student
{
	int num;
	int chinese;
	int math;
	int english;
	int getAllGrade()
	{
		return chinese + math + english;
	}
};
bool compare(Student one, Student two)
{
	int allGradeOne = one.getAllGrade();
	int allGradeTwo = two.getAllGrade();
	if (allGradeOne>allGradeTwo)
	{
		return true;
	}
	else if(allGradeOne==allGradeTwo)
	{
		if (one.chinese>two.chinese)
		{
			return true;
		}
		else if (one.chinese==two.chinese)
		{
			if (one.num<two.num)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}
int main()
{
	int n = 0;
	std::cin >> n;
	std::vector<Student> students;
	int cnt = 1;
	for (; cnt <= n; cnt++)
	{
		Student tempStudent;
		tempStudent.num = cnt;
		int tempChinese = 0, tempMath = 0, tempEnglish = 0;
		std::cin >> tempChinese >> tempMath >> tempEnglish;
		tempStudent.chinese = tempChinese;
		tempStudent.math = tempMath;
		tempStudent.english = tempEnglish;
		students.push_back(tempStudent);
	}
	/*for (auto tempStudent : students)
	{
		std::cout << tempStudent.num << ":" << tempStudent.chinese << std::endl;
	}*/
	sort(students.begin(), students.end(), compare);
	for (int i = 0; i < 5; i++)
	{
		std::cout << students[i].num << " " << students[i].getAllGrade() << std::endl;
	}
	return 0;
}

  

PKU 百煉OJ 獎學金