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

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

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

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

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

Во входном файле задано сначала число 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2017, 19:11
Ответы с готовыми решениями:

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

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

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

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

3
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
07.03.2017, 21:51 2
Пожалуйста, вот перевод строка в строку:
Кликните здесь для просмотра всего текста
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
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 02:05 3
Лучший ответ Сообщение было отмечено 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     Акция в супермаркете
  #4

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2017, 08:39

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

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

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

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

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент...

Что значит эта рекламная акция Microsoft?
Как думаете, чего ради это делает компания Майкрософт? А может, они такие добрые стали,что...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru