Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Narkok
0 / 0 / 0
Регистрация: 21.10.2014
Сообщений: 12
#1

Определить массу и количество тыкв, которые будут вывезены первым рейсом - C++

15.09.2015, 17:59. Просмотров 216. Ответов 1
Метки нет (Все метки)

Прежде чем начать вывозить с поля урожай тыкв хозяин решил сформировать такую ​​стратегию загрузки трактора, чтобы первым рейсом вывезти как можно большую массу овощей. При этом он выбирает из двух простых вариантов:
1.послидовно нагружать от легкого до тяжелого тыквы;
2.послидовно нагружать от тяжелого до легкого тыквы.
Если же эти две стратегии дают одинаковую массу, то желательно, чтобы количество тыкв была как можно больше. Конечно, хозяин не намерен перегружать трактор, поэтому учитывает его допустимую нагрузку. Составьте программу, чтобы с известным количеством тыкв, их массами и допустимой нагрузкой трактора определить массу и количество тыкв, которые будут вывезены первым рейсом.

Входные данные:
Из стандартного входного потока в отдельных строках вводятся натуральные числа: P - допустимая нагрузка трактора (0 <P <2000); N - количество тыкв (0 <N <500) N целых чисел mi - массы каждого из тыкв (0 <mi <100).

Исходные данные:
В стандартный выходной поток вывести два целых числа, разделенных пробелом - массу и количество тыкв, которые будут вывезены первым рейсом.

Просьба решить на с++ . Заранее спасибо !!!

П.с.: тесты
100 10
40 10 40 20 30 20 30 10 10 40 / 100 6
200 8
10 100 20 20 50 60 10 90 / 190 2
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2015, 17:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить массу и количество тыкв, которые будут вывезены первым рейсом (C++):

Найти количество элементов массива, которые находится между первым и последним отрицательным элементом - C++
Объявить и проинициализировать массив случайными числами в диапазоне . Найти сколько элементов находится между первым и последним...

Определить количество элементов между первым и последним нулевыми элементами - C++
Решите пожалуйста через указатели. В одномерном массиве из 100 элементов определить к-во элементов между первым и последним нулевыми...

Определить количество лет, в которые количество осадков превышало среднегодовое - C++
В массиве хранятся сведения о количестве осадков, выпавших за пять лет по месяцам. Определить количество лет, в которые количество осадков...

Определить количество лет, в которые количество осадков превышало среднегодовое - C++
В массиве хранятся сведения о количестве осадков, выпавших за пять лет по месяцам. Определить количество лет, в которые количество осадков...

Определить массу в килограммах, зная массу в центнерах, граммах, тоннах - Pascal ABC
Имя входного файла zv40.in Имя выходного файла zv40.out Написать программу, которая бы по введенному номеру единицы измерения (1 —...

Подсчитать число\количество олимпиад, которые проводились и будут проводится в каждом месяц - MS Access
запросы: 1)определить школьников, которые заняли призовые места на любых олимпиадах - это сделал. 2)Подсчитать число\количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kerry_Jr
Модератор
Эксперт PHP
2184 / 1980 / 692
Регистрация: 14.05.2014
Сообщений: 5,788
Записей в блоге: 1
Завершенные тесты: 5
16.09.2015, 12:28 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Narkok, вот такой велосипед
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
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <vector>
#include <algorithm>
 
int calc(const std::vector<int> v, const int p, int &count)
{
    int sum = 0;
    for (int i = 0; i < v.size(); ++i)
    {
        if (sum < p)
        {
            sum += v[i];
            ++count;
        }
        else if (sum > p)
        {
            sum -= v[i-1];
            --count;
            break;
        }
        else break;
    }
    return sum;
}
 
int main()
{
    int p, n, sum1 = 0, sum2 = 0, count1 = 0, count2 = 0;
    std::cin >> p >> n;
    std::vector<int> v(n);
    for_each(v.begin(), v.end(), [](int &i){ std::cin >> i; });
    std::sort(v.begin(), v.end(), [](int i, int j){ return i < j; });
    sum1 = calc(v, p, count1);
    std::sort(v.begin(), v.end(), [](int i, int j){ return i > j; });
    sum2 = calc(v, p, count2);
    if (sum1 > sum2 || (sum1 == sum2 && count1 > count2))
        std::cout << sum1 << ' ' << count1 << std::endl;
    else 
        std::cout << sum2 << ' ' << count2 << std::endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2015, 12:28
Привет! Вот еще темы с ответами:

Определить массу м1 водорода и массу м2 азота - Термодинамика и МКТ
Смесь водорода и азота общей массой м=290 г при температуре Т=600К и давлении р=2,46МПа занимает объём V=30 л. Определить массу м1 водорода...

Определить значения, которые будут содержаться во всех элементах матрицы, после выполнения следующего фрагмент - Pascal ABC
Задана целочисленная квадратная матрица со значениями, показанными на рисунке: Вложение удалено. вот эта матрица 1 1 ...

В текстовом файле подсчитать количество строк, которые будут завершены на букву "s" - Java SE
Доброго времени суток! Прошу помочь с решением простых задач 1.в текстовом файле подсчитать количество строк, которые будут...

Определить количество значений, совпадающих с первым компонентом в файле - Turbo Pascal
Сформировать файл с именем MAR, компонентами которого являются периодически повторяющиеся значения. Определить количество значении,...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru