#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <vector>
class student
{
public:
std::string firstName;
std::string lastName;
float gpa;
student() {};
student(std::string last, std::string first, double grade)
{
firstName = first;
lastName = last;
gpa = grade;
};
};
int main()
{
std::vector<student> list;
student current_student;
std::cout << "input data:" << std::endl;
int count = 0;
std::string line;
std::getline(std::cin, line);
std::istringstream iss(line);
while ((iss >> current_student.lastName) && (iss >> current_student.firstName) && (iss >> current_student.gpa))
{
list.push_back(current_student);
count++;
}
for ( int i = 0; i < count-1; i++)
{
if (list[i].lastName > list[i + 1].lastName)
{
std::swap (list[i], list[i+1]);
}
}
for ( int i = 0; i < count-1; i++)
{
if (list[i].firstName > list[i + 1].firstName)
{
std::swap (list[i], list[i+1]);
}
}
for(int i = 0; i < count; i++)
{
std::cout << list[i].lastName << " " << list[i].firstName << " " << list[i].gpa << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KCmNsYXNzIHN0dWRlbnQKewpwdWJsaWM6CiAgICBzdGQ6OnN0cmluZyBmaXJzdE5hbWU7CiAgICBzdGQ6OnN0cmluZyBsYXN0TmFtZTsKICAgIGZsb2F0IGdwYTsKCiAgICBzdHVkZW50KCkge307CiAgICBzdHVkZW50KHN0ZDo6c3RyaW5nIGxhc3QsIHN0ZDo6c3RyaW5nIGZpcnN0LCBkb3VibGUgZ3JhZGUpCiAgICB7CiAgICAgICAgZmlyc3ROYW1lID0gZmlyc3Q7CiAgICAgICAgbGFzdE5hbWUgPSBsYXN0OwogICAgICAgIGdwYSA9IGdyYWRlOwogICAgfTsKfTsKCmludCBtYWluKCkKewoJc3RkOjp2ZWN0b3I8c3R1ZGVudD4gbGlzdDsKCXN0dWRlbnQgY3VycmVudF9zdHVkZW50OwoJCglzdGQ6OmNvdXQgPDwgImlucHV0IGRhdGE6IiA8PCBzdGQ6OmVuZGw7CgkKCWludCBjb3VudCA9IDA7CglzdGQ6OnN0cmluZyBsaW5lOwoJc3RkOjpnZXRsaW5lKHN0ZDo6Y2luLCBsaW5lKTsKCXN0ZDo6aXN0cmluZ3N0cmVhbSBpc3MobGluZSk7CgkKCQoJd2hpbGUgKChpc3MgPj4gY3VycmVudF9zdHVkZW50Lmxhc3ROYW1lKSAmJiAoaXNzID4+IGN1cnJlbnRfc3R1ZGVudC5maXJzdE5hbWUpICYmIChpc3MgPj4gY3VycmVudF9zdHVkZW50LmdwYSkpCgl7CgkJbGlzdC5wdXNoX2JhY2soY3VycmVudF9zdHVkZW50KTsKCQljb3VudCsrOwoJfQoJCiAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBjb3VudC0xOyBpKyspCiAgICB7CiAgICAgICAgaWYgKGxpc3RbaV0ubGFzdE5hbWUgPiBsaXN0W2kgKyAxXS5sYXN0TmFtZSkKICAgICAgICB7CiAgICAgICAgICAgIHN0ZDo6c3dhcCAobGlzdFtpXSwgbGlzdFtpKzFdKTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGZvciAoIGludCBpID0gMDsgaSA8IGNvdW50LTE7IGkrKykKICAgIHsKICAgICAgICBpZiAobGlzdFtpXS5maXJzdE5hbWUgPiBsaXN0W2kgKyAxXS5maXJzdE5hbWUpCiAgICAgICAgewogICAgICAgICAgICBzdGQ6OnN3YXAgKGxpc3RbaV0sIGxpc3RbaSsxXSk7CiAgICAgICAgfQogICAgfQoKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgbGlzdFtpXS5sYXN0TmFtZSA8PCAiICIgPDwgbGlzdFtpXS5maXJzdE5hbWUgPDwgIiAiIDw8IGxpc3RbaV0uZ3BhIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==