-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompetition.js
61 lines (46 loc) · 1.71 KB
/
competition.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
function getPlace(list){
let [ , values ] = list;
values = values.split(' ')
.map(num => Number(num));
let maxPos = null;
let maxNum = 0;
let maxs = [];
// Ищу максимальную дальность
for(let i = 0; i < values.length; i++){
if(values[i] > maxNum){
maxPos = i;
maxNum = values[i];
}
}
// Ищу индексы всех максимальных одинаковых бросков
for(let i = maxPos; i < values.length; i++){
if(values[i] === maxNum)
maxs.push(i);
}
let distance = 0;
/* Иду по массиву индексов максимальных бросков, ставлю их
в массив values и проверяю на заданные условия и ищу
дистанцию броска Васи */
for(let i = 0; i < maxs.length; i++){
const current = maxs[i] + 1; // возможный Василий
const next = maxs[i] + 2 // Следующий после него
if((values[current] % 10 === 5 ) &&
values[next] < values[current])
distance = values[current];
}
/* Ищу позицию. Если дистанция есть, тогда сравниваю
поочередно полученную дистанцию с каждой из массива */
let position = 0;
const calcPosition = () => {
for(let i = 0; i < values.length; i++){
if(values[i] > distance)
position++;
}
}
if(distance){
position++;
calcPosition();
}
return `${position}`;
}
getPlace(['7', '45 5 40']);