백준 Sport Climbing Combined (23246)
단순 정렬 문제 입니다.
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
import java.util.*;
import java.io.*;
class Player {
public int sum;
public int div;
public int num;
Player(Scanner sc) {
this.num = sc.nextInt();
int lead = sc.nextInt();
int speed = sc.nextInt();
int bolder = sc.nextInt();
this.div = lead * speed * bolder;
this.sum = lead + speed + bolder;
}
}
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
// 참가 선수 인원
int n = sc.nextInt();
// 선수들의 정보가 담겨있는 배열
Player p[] = new Player[n];
// 선수들 정보 입
for (int i = 0; i < n; i++)
p[i] = new Player(sc);
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
Player tmp;
if (p[j].div == p[j + 1].div) { // 만약 곱이 같으
if (p[j].sum == p[j + 1].sum) { // 합도 같으면 등번호가 낮은 선수가 이김
if (p[j].num < p[j + 1].num) {
tmp = p[j];
p[j] = p[j + 1];
p[j + 1] = tmp;
}
} else {
if (p[j].sum < p[j + 1].sum) {
tmp = p[j];
p[j] = p[j + 1];
p[j + 1] = tmp;
}
}
} else {
if (p[j].div < p[j + 1].div) {
tmp = p[j];
p[j] = p[j + 1];
p[j + 1] = tmp;
}
}
}
}
System.out.println(p[n - 1].num + " " + p[n - 2].num + " " + p[n - 3].num);
}
}