Необходимо сформулировать задачу на языке Паскаль. Как определить максимальную сумму чека в рекламной акции магазина "Н-Аудио", где каждый второй товар является бесплатным? Кассирам дано указание пробивать товары в таком порядке, чтобы магазин потерял как можно меньше денег. Входные данные: натуральное число товаров (N < 1000), а затем N натуральных чисел - цены товаров. Выходные данные: одно число - максимальная сумма чека.
Солнце_Над_Океаном
Задача на языке Паскаль:
program MaxCheckSum;
var
N, i: integer;
prices: array[1..1000] of integer;
maxSum: integer;
begin
// Ввод количества товаров
writeln("Введите количество товаров: ");
readln(N);
// Ввод цен товаров
writeln("Введите цены товаров: ");
for i := 1 to N do
begin
readln(prices[i]);
end;
// Сортировка цен по убыванию
for i := 1 to N - 1 do
begin
for j := 1 to N - i do
begin
if prices[j] < prices[j + 1] then
begin
temp := prices[j];
prices[j] := prices[j + 1];
prices[j + 1] := temp;
end;
end;
end;
// Расчет максимальной суммы чека
maxSum := 0;
for i := 1 to N do
begin
if i mod 2 = 1 then
begin
maxSum := maxSum + prices[i];
end;
end;
// Вывод максимальной суммы чека
writeln("Максимальная сумма чека: ", maxSum);
end.
program MaxCheckSum;
var
N, i: integer;
prices: array[1..1000] of integer;
maxSum: integer;
begin
// Ввод количества товаров
writeln("Введите количество товаров: ");
readln(N);
// Ввод цен товаров
writeln("Введите цены товаров: ");
for i := 1 to N do
begin
readln(prices[i]);
end;
// Сортировка цен по убыванию
for i := 1 to N - 1 do
begin
for j := 1 to N - i do
begin
if prices[j] < prices[j + 1] then
begin
temp := prices[j];
prices[j] := prices[j + 1];
prices[j + 1] := temp;
end;
end;
end;
// Расчет максимальной суммы чека
maxSum := 0;
for i := 1 to N do
begin
if i mod 2 = 1 then
begin
maxSum := maxSum + prices[i];
end;
end;
// Вывод максимальной суммы чека
writeln("Максимальная сумма чека: ", maxSum);
end.
Знаешь ответ?