#include <algorithm>
#include <cmath>
#include <iostream>
#include <limits>
#include <string>
#include <vector>

struct student
{
	student(const std::string& name, const int year, const double average)
		: name(name), year(year), average(average) {}
	
	std::string name;
	int year;
	double average;
};

int main()
{
	std::vector<student> students;
	students.push_back(student("Vasya", 1992, 4.5));
	students.push_back(student("Marina", 1993, 5.0));
	students.push_back(student("Olya", 1994, 4.9));
	
	std::sort(
		students.begin()
		, students.end()
		, [](const student& left, const student& right)
		{
			return left.average < right.average;
		});
		
	for (const student& stud : students)
	{
		std::cout << stud.name << '\n';
	}
}