Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.02.2017
Сообщений: 29

Акция в супермаркете

07.03.2017, 19:11. Показов 5867. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В супермаркете проводится беспрецедентная акция – «Покупая два любых товара, третий получаешь бесплатно*», а внизу мелким шрифтом приписано «* - из трех выбранных вами товаров оплачиваются два наиболее дорогих».

Вася, идя в супермаркет, определился, какие товары он хочет купить, и узнал, сколько они стоят. Помогите ему определить минимальную сумму денег, которую ему нужно взять с собой, чтобы в итоге стать счастливым обладателем этих товаров.
Входные данные

Во входном файле задано сначала число N (1≤N≤1000), а затем N чисел – стоимости выбранных Васей товаров. Все стоимости – натуральные числа, не превышающие 10000.
Выходные данные

В выходной файл выведите одно число – сумму денег, которую Вася должен взять с собой в супермаркет (минимально возможную).

Комментарии к примерам тестов

1. Вася сначала пройдет через кассу с товарами стоимостью 1, 3 и 4 – заплатит 7 рублей и товар стоимостью 1 получит в подарок, а затем снова зайдет в супермаркет и купит товары стоимостью 5 и 7, еще один товар стоимостью 5 получив в подарок.

2. Вася в первый заход в супермаркет купит товары стоимостью 15 и 25 рублей, в качестве подарка взяв товар стоимостью 8 рублей. А во второй заход в супермаркет купит товары стоимостью 3 и 8, не взяв никакого подарка.


Вод код на С++, можно перевести

C++
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
#include <iostream>
using namespace std;
int main()
{
    int n, arr[1000], i, j, a;
    cin>>n;
    for(i=0;i<n;i++) cin>>arr[i];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-1;j++)
        {
            if(arr[j]<arr[j+1])
            {
                a=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=a;
            }
        }
    }
    for(i=a=0;i<n;i++)
    {
        if((i+1)%3)
        {
            a+=arr[i];
        }
    }
    cout<<endl<<a<<endl;
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2017, 19:11
Ответы с готовыми решениями:

имеют ли право охранники обыскивать в супермаркете?
Меня сегодня задержал охранник в магазине и стал проверять все мои вещи - мол, есть подозрение, что я что-то украл! (Я вышел, ничего не...

Определить минимальную сумму для оплаты покупки N товаров в супермаркете электроники
Знижки-2 В супермаркете электроники существует такая система скидок: один товар оплачивается полностью, из двух купленных товаров не...

Акция
В магазине акция: скидка 5% на товары, цена которых превышает 1000 рублей. Напишите программу, отчасти имитирующую работу кассового...

3
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
07.03.2017, 21:51
Пожалуйста, вот перевод строка в строку:
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
n,i,j,a:integer;
arr:array [1..1000] of integer;
begin
  readln(n);
  for i:=1 to n do readln(arr[i]);
  for i:=1 to n do
    for j:=1 to n-1 do
      if arr[j]<arr[j+1] then begin
        a:=arr[j];
        arr[j]:=arr[j+1];
        arr[j+1]:=a;
      end;
  a:=0;
  for i:=1 to n do
    if (i=1) or (i=2) then
      a:=a+arr[i];
  writeln(a);
end.

но вы уверены, что вам нужно именно такое решение? В условии прописана работа с файлами
1
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 02:05
Лучший ответ Сообщение было отмечено IceLemon как решение

Решение

На всякий случай сделал с файлами:
Кликните здесь для просмотра всего текста
Pascal
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
var
  input,output:text;
  arr:array [1..1000] of integer;
  n,i,a,j:integer;
begin
  assign(input,'input.dat');
  assign(output,'output.dat');
  reset(input);
    read(input,n); i:=0;
    while not eof(input) do begin
      i:=i+1;
      readln(input,arr[i]);
    end;
  close(input);
  for i:=1 to n do
    for j:=1 to n-1 do
      if arr[j]<arr[j+1] then begin
        a:=arr[j]; arr[j]:=arr[j+1]; arr[j+1]:=a;
      end;
  a:=0;
  for i:=1 to n do
    if (i=1) or (i=2) then
      a:=a+arr[i];
  rewrite(output);
    write(output,a);
  close(output);
end.

Пример входного файла файла: input.rar
1
08.03.2017, 08:39

Не по теме:

Hitoku, это задачка сайта с "электронным судьёй" и для ввода и вывода использует перенаправление ввода и вывода, когда внешний файл используется вместо консольного ввода. Это организуется средствами ОС.
Т.е. для работы программы из сообщения #2 нужно в командной строке набрать
MyProgram.exe < input.dat > output.dat
И данные из input.dat будут подставлены на ввод (к read), а то, что выводит writeln само запишется в файл output.dat

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2017, 08:39
Помогаю со студенческими работами здесь

Акция от LG
Компания LG проводит акцию! Всем желаюжим выиграть телефон LG Optimus GT 540, предлагается возможность заполнить регистрационую форму LG и...

Акция. ADWORDS купоны 50$ за 10 WM
Новогодняя акция.... Продаю купоны Google Adwords номиналом 50$, конвертируется в любую валюту. Для акков, не старше 14 дней. ...

Акция кофе в подарок
Сейчас во время продажи кофеварок все чаще встречаются акции, где упаковка, а то и не одна идут в подарок. Прошу поделиться впечатлениями,...

Акция, скидки, головоломка
Значит так, товарищи. Есть акция &quot;каждый второй товар по бренду - скидка 50%&quot;. Как ее реализовать средствами движка - понятия не имею....

Акция зарегистрируй код - как реализовать?
Кто-то пробовал реализовывать что-то подобное: Дано: База кодов Сайт на joomla (joomsocial) Необходимо: чтоб человек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru