george39
02.02.2020 04:40

Игра в числа ведётся на одномерном массиве целых положительных чисел. Перед началом, жеребьёвкой определяется, кто будет ходить первым (первый игрок), а кто – вторым (второй игрок). Процесс игры состоит в том, что игроки по очереди (сначала первый игрок, затем второй, следом опять первый и так далее) вычёркивают числа из массива. Вычеркнуть можно только число, находящееся в конце или начале оставшегося массива. При этом всегда вычёркивается максимальное число из этих двух. Если первое и последнее числа массива равны, то вычёркивается первое. Игра продолжается до того момента, пока не будут вычеркнуты все числа. Каждое вычеркнутое число идёт в актив тому, который его вычеркнул. После окончания игры каждый игрок суммирует вычеркнутые им числа. Победителем объявляется тот, кто наберет больше очков. Некоторые игроки поняли, что результат не зависит от стратегии игры, и решили попросить Вас написать программу для получения результата.

В первой строке вводится одно целое число N – количество чисел в массиве (1 ≤ N ≤ 104). Во второй строке находятся N целых положительных чисел из диапазона [1, 32000], разделённых пробелом.

Выведите два числа, разделенные двоеточием. Первое число – количество очков, набираемых первым игроком при игре на этом массиве, второе число – для второго.Решение на паскале.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Xxxmara
26.04.2021 02:01
Прикладное ПО - тоесть то, кторое решает конкретные задачи. Рисовалки, писалки, написание музыки и т.п. Существует много офисных пакетов, среди ник майкрософт офис, либре офис, опен офис. Вопрос о том, какая из них лучше - не корректен. Наиболее расправтренен майкрасофт офис, но он платный и за его кражу сейчас наказывают. Но он ничем не лучше бесплатных аналогов кроме того, что он - фактически стандарт - все на нем работают. Остальные прикладные программы расматривать не имеет смысла - так как это разговор на 60 страниц с приложением.
0,0(0 оценок)
Ответ:
Dimon2281337
29.02.2020 09:08
У вас не указано, над каким именно массивом нужно производить вышеописанное действие, поэтому я выкладываю общее решение.
Предположим, что a - это массив с какими-то сохранёнными числами до a[n]

for i:=1 to n do
  if a[i] > 0 then
    begin
    k:=k+1;
    sum:=sum+a[i]
    end;
average:=sum/k;

(a - данный массив, sum - сумма всех положительных чисел, k - количество положительных чисел - n - индекс последнего элемента массива, i - переменная для цикла, average - переменная, сохраняющая численное значение)
Запускаем цикл от 1 до n и перебираем все числа массива. Если i-тое число положительно, мы прибавляем его к sum, и увеличиваем k на 1, который сохраняет в себе количество положительных чисел массива.
После завершения цикла, мы получаем k - количество положительных чисел, sum - сумма всех положительных чисел. Чтобы найти среднее арифметическое, делим сумму всех чисел на их количество.
(Учитывайте, что переменная, сохраняющая среднее арифметическое должна иметь вещественный тип (real, double...))
Вот и всё. Если у вас возникают какие-то проблемы или ошибки в коде - оставьте комментарий. Если у вас проблемы с созданием массива (чтение массива с клавиатуры или создание массива со случайными числами) - опять же таки пишите:)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота