-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJavascript.js
79 lines (79 loc) · 2.04 KB
/
Javascript.js
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
let tournaments = [];
const N = parseInt(readline());
let phase = [];
for (let i = 0; i < N; i++) {
var inputs = readline().split(" ");
const NUMPLAYER = parseInt(inputs[0]);
const SIGNPLAYER = inputs[1];
phase.push({ id: NUMPLAYER, sign: SIGNPLAYER });
}
tournaments.push(phase);
while (tournaments[tournaments.length - 1].length != 1) {
let phase = [];
for (let i = 0; i < tournaments[tournaments.length - 1].length; i += 2) {
let p1 = tournaments[tournaments.length - 1][i];
let p2 = tournaments[tournaments.length - 1][i + 1];
if (p1.sign == p2.sign) {
if (p1.id > p2.id) {
phase.push(p2);
} else {
phase.push(p1);
}
} else {
switch (p1.sign) {
case "R":
if (p2.sign == "L" || p2.sign == "C") {
phase.push(p1);
} else {
phase.push(p2);
}
break;
case "P":
if (p2.sign == "R" || p2.sign == "S") {
phase.push(p1);
} else {
phase.push(p2);
}
break;
case "C":
if (p2.sign == "P" || p2.sign == "L") {
phase.push(p1);
} else {
phase.push(p2);
}
break;
case "L":
if (p2.sign == "S" || p2.sign == "P") {
phase.push(p1);
} else {
phase.push(p2);
}
break;
case "S":
if (p2.sign == "R" || p2.sign == "C") {
phase.push(p1);
} else {
phase.push(p2);
}
break;
}
}
}
tournaments.push(phase);
}
console.error(tournaments);
let winner = tournaments[tournaments.length - 1][0].id;
let winAgainst = [];
for (let i = 0; i < tournaments.length - 1; i++) {
for (let j = 0; j < tournaments[i].length; j++) {
if (tournaments[i][j].id == winner) {
if (j % 2 == 0) {
winAgainst.push(tournaments[i][j + 1].id);
} else {
winAgainst.push(tournaments[i][j - 1].id);
}
}
}
}
console.log(winner);
console.log(winAgainst.join(" "));