Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать код на javascript решение этой задачи

Данил Андросов Ученик (139), на голосовании 1 год назад
В игровом шоу «Десять слов мудрости» участвуют n
участников, пронумерованных от 1
до n
, каждый из которых даёт один ответ. i
-й ответ состоит из ai
слов и имеет качество bi
. Никакие два ответа не имеют одинакового качества, и по крайней мере один ответ имеет длину не более 10
слов.

Победителем шоу становится ответ с наивысшим качеством из всех ответов, которые не превышают 10
слов. Какой ответ станет победителем?

Входные данные
Первая строка содержит одно целое число t
(1≤t≤100
) — количество наборов входных данных.

Первая строка каждого набора содержит одно целое число n
(1≤n≤50
) — количество ответов.

Затем следуют n
строк, i
-я из которых содержит два целых числа ai
и bi
(1≤ai,bi≤50
) — количество слов и качество i
-го ответа соответственно.

Дополнительные ограничения на ввод: в каждом тесте, по крайней мере одно значение i
удовлетворяет условию ai≤10
, и все значения bi
различны.

Выходные данные
Для каждого набора входных данных выведите одну строку, содержащую одно целое число x
(1≤x≤n
) — победителя шоу, согласно правилам, указанным в условии.

Можно показать, что согласно ограничениям в условии, для каждого теста существует ровно один победитель.
Голосование за лучший ответ
Sergio 2.1 Оракул (67319) 1 год назад
Вот код на JavaScript, который решает эту задачу:
 function findWinner(t, data) { 
let winners = [];
for (let i = 0; i < t; i++) {
let n = data[i].n;
let answers = data[i].answers;
let maxQuality = 0;
let winner = 0;
for (let j = 0; j < n; j++) {
if (answers[j].a <= 10 && answers[j].b > maxQuality) {
maxQuality = answers[j].b;
winner = j + 1;
}
}
winners.push(winner);
}
return winners;
}
Вы можете использовать эту функцию, передавая ей количество наборов входных данных t и массив объектов data, где каждый объект представляет собой набор входных данных с полями n (количество ответов) и answers (массив объектов, представляющих ответы с полями a (количество слов) и b (качество ответа)). Функция вернет массив победителей для каждого набора входных данных. Например:
 let t = 2; 
let data = [
{
n: 3,
answers: [
{a: 5, b: 10},
{a: 15, b: 20},
{a: 7, b: 30}
]
},
{
n: 4,
answers: [
{a: 12, b: 40},
{a: 8, b: 50},
{a: 9, b: 60},
{a: 11, b: 70}
]
}
];
let winners = findWinner(t, data);
console.log(winners); // [3, 3]
Похожие вопросы