import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
private static class Person {
private String name;
private Integer year;
private Integer month;
private Integer day;
public Person() {
super();
}
public Person(String name, Integer year, Integer month, Integer day) {
super();
this.name = name;
this.year = year;
this.month = month;
this.day = day;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(Integer month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(Integer day) {
this.day = day;
}
}
public static void main(String[] args) {
TreeSet<Person> treeSet = new TreeSet<Main.Person>(new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
int num = p1.getYear() - p2.getYear();
int num2 = num == 0 ? p1.getMonth() - p2.getMonth() : num;
int num3 = num2 == 0 ? p1.getDay() - p2.getDay() : num2;
int num4 = num3 == 0 ? p1.getName().compareTo(p2.getName()) : num3;
return num4;
}
});
Scanner scanner = new Scanner(System.in);
String n = scanner.nextLine();
int num = Integer.parseInt(n);
Person[] persons = new Person[num];
for (int x = 0; x < num; x++) {
String[] info = scanner.nextLine().split("\\s");
persons[x] = new Person(info[0],Integer.parseInt(info[1]),Integer.parseInt(info[2]),Integer.parseInt(info[3]));
treeSet.add(persons[x]);
}
for (Person p : treeSet) {
System.out.println(p.getName());
}
}
}
------------