import java.util.*; /** * Created by Radu on 2/12/2015. */ public class prog { public static void main(String[] args) { class Team { public Team(String s, int a, int b, int c) { name = s; points = a; goalsScored = b; goalsRecieved = c; } public String name; public int points; public int goalsScored; public int goalsRecieved; } Scanner scanner = new Scanner(System.in); List list = new ArrayList(); while (scanner.hasNextLine()) { String line = scanner.nextLine(); String[] parts = line.split(" "); String team1 = parts[0]; String team2 = parts[1]; int points1 = Integer.valueOf(parts[2]); int points2 = Integer.valueOf(parts[3]); int j; j = 0; for (j = 0; j < list.size(); j++) { if (list.get(j).name.equals(team1)) { break; } } if (j == list.size()) { list.add(new Team(team1, 0, 0, 0)); } for (j = 0; j < list.size(); j++) { if (list.get(j).name.equals(team2)) { break; } } if (j == list.size()) { list.add(new Team(team2, 0, 0, 0)); } if (points1 > points2) { for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team1)) { Team team = list.get(i); team.points += 3; team.goalsScored += points1; team.goalsRecieved += points2; } } for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team2)) { Team team = list.get(i); team.goalsScored += points2; team.goalsRecieved += points1; } } } if (points1 < points2) { for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team2)) { Team team = list.get(i); team.points += 3; team.goalsScored += points2; team.goalsRecieved += points1; } } for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team1)) { Team team = list.get(i); team.goalsScored += points1; team.goalsRecieved += points2; } } } if (points1 == points2) { for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team2)) { Team team = list.get(i); team.points += 1; team.goalsScored += points2; team.goalsRecieved += points1; } } for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(team1)) { Team team = list.get(i); team.points = 1; team.goalsScored += points1; team.goalsRecieved += points2; } } } } Collections.sort(list, new Comparator() { @Override public int compare(Team o1, Team o2) { if (o1.points < o2.points || o1.points == o2.points && o1.goalsScored < o2.goalsScored || o1.points == o2.points && o1.goalsScored == o2.goalsScored && o1.goalsRecieved > o2.goalsRecieved) { return -1; } if (o2.points < o1.points || o2.points == o1.points && o2.goalsScored < o1.goalsScored || o2.points == o1.points && o2.goalsScored == o1.goalsScored && o2.goalsRecieved > o1.goalsRecieved) { return 1; } return 0; } }); for (Team team : list) { System.out.println(team.name); } } }