From c29c0dd481239f1584b7fafd4058461bc6e62a27 Mon Sep 17 00:00:00 2001 From: dtr200 Date: Thu, 24 Jun 2021 01:39:08 +0300 Subject: [PATCH] Homework-2: task 5 has been added --- homework-lecture-2/competition.js | 61 +++++++++++++++++++++++++++++++ homework-lecture-2/readme.md | 58 ++++++++++++++++++++++++++++- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 homework-lecture-2/competition.js diff --git a/homework-lecture-2/competition.js b/homework-lecture-2/competition.js new file mode 100644 index 0000000..848dce9 --- /dev/null +++ b/homework-lecture-2/competition.js @@ -0,0 +1,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']); diff --git a/homework-lecture-2/readme.md b/homework-lecture-2/readme.md index f78c541..6d2093f 100644 --- a/homework-lecture-2/readme.md +++ b/homework-lecture-2/readme.md @@ -123,4 +123,60 @@ CONSTANT #### Вывод 2 -### Решение: biggest-neighbor.js \ No newline at end of file +### Решение: biggest-neighbor.js + +# E. Чемпионат по метанию коровьих лепешек + +Ежегодный турнир "Веселый коровяк" - по метанию коровьих лепешек на дальность - прошел 8-9 июля в селе Крылово Осинского района Пермского края. + +Участники соревнований кидают "снаряд" - спрессованный навоз, выбирая его из заранее заготовленной кучи. Желающих поупражняться в силе броска традиционно очень много - как мужчин, так и женщин. Каждую лепешку, которую метнули участники "Веселого коровяка", внимательно осматривали женщины в костюмах коров и тщательно замеряли расстояние. + +Соревнования по метанию коровьих лепешек проводятся в Пермском крае с 2009 года. + +К сожалению, после чемпионата потерялись записи с фамилиями участников, остались только записи о длине броска в том порядке, в котором их совершали участники. + +Трактиорист Василий помнит три факта: + +1) Число метров, на которое он метнул лепешку, оканчивалось на 5 + +2) Один из победителей чемпионата метал лепешку до Василия + +3) Участник, метавший лепешку сразу после Василия, метнул ее на меньшее количество метров + +Будем считать, что участник соревнования занял k-е место, если ровно (k − 1) участников чемпионата метнули лепешку строго дальше, чем он. + +Какое максимально высокое место мог занять Василий? + +### Формат ввода +Первая строка входного файла содержит целое число n — количество участников чемпионата по метанию лепешек (3 ≤ n ≤ 105). + +Вторая строка входного файла содержит n положительных целых чисел, каждое из которых не превышает 1000, — дальность броска участников чемпионата, приведенные в том порядке, в котором происходило метание. + +### Формат вывода +Выведите самое высокое место, которое мог занять тракторист Василий. Если не существует ни одного участника чемпионата, который удовлетворяет, описанным выше условиям, выведите число 0. + +### Пример 1 +#### Ввод +7 +10 20 15 10 30 5 1 + +#### Вывод +6 + +### Пример 2 +#### Ввод +3 +15 15 10 + +#### Вывод +1 + +### Пример 3 +#### Ввод +3 +10 15 20 + +#### Вывод +0 + +### Неполное решение: competition.js (8 тестов) \ No newline at end of file