-
Notifications
You must be signed in to change notification settings - Fork 0
/
1b-football-commentator.js
83 lines (59 loc) · 3.95 KB
/
1b-football-commentator.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
80
81
82
83
/*
B. Футбольный комментатор
Ограничение времени 2 секунды (фактическое использование на тестах – до 61ms)
Ограничение памяти 64Mb (фактическое использование на тестах – до 5.50Mb)
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Раунд плей-офф между двумя командами состоит из двух матчей. Каждая команда проводит по одному матчу «дома» и «в гостях». Выигрывает команда, забившая большее число мячей. Если же число забитых мячей совпадает, выигрывает команда, забившая больше мячей «в гостях». Если и это число мячей совпадает, матч переходит в дополнительный тайм или серию пенальти.
Вам дан счёт первого матча, а также счёт текущей игры (которая ещё не завершилась). Помогите комментатору сообщить, сколько голов необходимо забить первой команде, чтобы победить, не переводя игру в дополнительное время.
Формат ввода
В первой строке записан счёт первого мачта в формате G1:G2, где G1 — число мячей, забитых первой командой, а G2 — число мячей, забитых второй командой.
Во второй строке записан счёт второго (текущего) матча в аналогичном формате. Все числа в записи счёта не превышают 5.
В третьей строке записано число 1, если первую игру первая команда провела «дома», или 2, если «в гостях».
Формат вывода
Выведите единственное целое число — необходимое количество мячей.
Пример 1
Ввод
0:0
0:0
1
Вывод
1
Пример 2
Ввод
0:2
0:3
1
Вывод
5
Пример 3
Ввод
0:2
0:3
2
Вывод
6
*/
const fs = require('fs');
const lines = fs.readFileSync('input.txt', 'utf8').toString().trim().split('\n');
const [firstTeamFirstMatchScore, secondTeamFirstMatchScore] = lines[0].trim().split(':').map((item) => parseInt(item));
const [firstTeamSecondMatchScore, secondTeamSecondMatchScore] = lines[1].trim().split(':').map((item) => parseInt(item));
const isFirstTeamStartedFromHome = parseInt(lines[2].trim()) === 1;
const firstTeamScore = firstTeamFirstMatchScore + firstTeamSecondMatchScore;
const firstTeamVisitingScore = isFirstTeamStartedFromHome ? firstTeamSecondMatchScore : firstTeamFirstMatchScore;
const secondTeamScore = secondTeamFirstMatchScore + secondTeamSecondMatchScore;
const secondTeamVisitingScore = isFirstTeamStartedFromHome ? secondTeamFirstMatchScore : secondTeamSecondMatchScore;
let firstTeamScoreDifferenceToWin = 0;
const firstTeamScoreDifferenceToSecondTeam = firstTeamScore - secondTeamScore;
if (firstTeamScoreDifferenceToSecondTeam === 0) {
if (firstTeamVisitingScore <= secondTeamVisitingScore) {
firstTeamScoreDifferenceToWin = 1;
}
} else if (firstTeamScoreDifferenceToSecondTeam < 0) {
firstTeamScoreDifferenceToWin = Math.abs(firstTeamScoreDifferenceToSecondTeam);
const firstTeamVisitingScoreUpdated = firstTeamVisitingScore + (isFirstTeamStartedFromHome ? firstTeamScoreDifferenceToWin : 0);
if (firstTeamVisitingScoreUpdated <= secondTeamVisitingScore) {
firstTeamScoreDifferenceToWin += 1;
}
}
fs.writeFileSync('output.txt', `${firstTeamScoreDifferenceToWin}`);