-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathclassy.java
91 lines (66 loc) · 1.64 KB
/
classy.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
class person implements Comparable<person>
{
private char val(String s)
{
if(s.equals("upper"))
return '3';
else if(s.equals("middle"))
return '2';
else
return '1';
}
private String convert(String[] arr)
{
char[] nums = new char[12];
Arrays.fill(nums, '2');
for (int i = 12 - arr.length; i < nums.length; i++)
nums[i] = val(arr[i - (12 - arr.length)]);
String ans = "";
for(int i=nums.length-1; i >= 0; i--)
ans += nums[i] + "";
return ans;
}
String name;
String rank;
public person(String name, String rank)
{
this.name = name.substring(0, name.length()-1);
this.rank = convert(rank.split("-"));
}
public int compareTo(person p)
{
if(this.rank.equals(p.rank))
return this.name.compareTo(p.name);
return p.rank.compareTo(this.rank);
}
public String toString(){return this.name;}
}
public class classy
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int cases = scan.nextInt();
scan.nextLine();
while(cases--> 0)
{
int pop = scan.nextInt();
scan.nextLine();
ArrayList<person> people = new ArrayList<>();
while(pop --> 0)
{
people.add(new person(scan.next(), scan.next()));
scan.nextLine();
}
Collections.sort(people);
for(person p : people)
System.out.println(p);
System.out.println("==============================");
}
scan.close();
}
}