С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Упаковка по ящикам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчет символов в файле http://www.cyberforum.ru/cpp-beginners/thread972586.html
Дан текстовый файл, где в первой строке введено некоторое число N. Во второй строке находятся N элементов(чисел), введенных через пробелы. Помогите плиз написать прогу, которая может вывести номер...
C++ Как инит масс, передава указатель конструктору? #include <iostream> #include <string> using namespace std; class swapall { private: int *a; double *b; string slovo; http://www.cyberforum.ru/cpp-beginners/thread972585.html
Перепишите пожалуйста на C++ C++
procedure TForm1.Button1Click(Sender: TObject); var r5,x1,y1,x2,y2,x3,y3,x4,y4:integer; l,n,r4,r3,r1,r2:integer; begin x1:=200;y1:=200; x2:=200;y2:=50; x3:=50;y3:=50; ...
Реализовать через цикл for C++
Дано вещественное число a, целое n. Вычислить: a (a-1) (a-2)...(a-n). Вот пишу, но цикл работает не верно... #include <iostream> #include <windows.h> #include <cmath> using namespace std; ...
C++ Даны положительные действительные числа a,b,c,d. Выяснить, можно ли один из прямоугольников целиком поместить внутри другого прямоугольника http://www.cyberforum.ru/cpp-beginners/thread972546.html
Прямоугольники. Даны положительные действительные числа a,b,c,d. Выяснить, можно ли один из прямоугольников целиком поместить внутри другого прямоугольника. Числа a , b определяют стороны первого...
C++ Написать программу выводящую на экран таблицу значений функции Y= sin(X) на отрезке с шагом h. (аргумент функции sin(x) выражается в радианах , а не в привычных градусах 1r=57.296◦) подробнее

Показать сообщение отдельно
allex
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 20

Упаковка по ящикам - C++

08.10.2013, 23:19. Просмотров 467. Ответов 7
Метки (Все метки)

здравствуйте,

помогите пожалуйста с программой, которая будет упаковывать элементы в ящики (определенного размера)
с минимальным занимаемым местом.

например, последовательность элементов:
5,7,3,9,6,8,1,4,2,5 (например хранится в массиве а)
Объем ящиков = 10

шаг 1. в 1 ящик кладется 5 (a[0])
шаг 2. т.к. для a[1] уже нет места в 0 ящике, то во 2 ящик - 7 (a[1])
шаг 3. a[2] предпочтительно класть во второй ящик, т.к. 7+3=10, что совпадает с объемом ящика и туда уже больше ничего не положишь.
и т.д.

у меня получилась упрощенная версия, где отсутствует выбор наиболее подходящего элеента (если объем текущего ящика+текущий элеент<11, то запись элеента в ящик)

C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[15]= {5,7,3,9,6,8,1,4,2,5};
    int b[10]; // 10 ящиков
    int i,j,k,min,t;
    
    for (i=0; i<10; i++) //вывод на экран всех элементов
        {cout<<a[i]<<" ";
        b[i]=0;}
        
    //      b[0]=a[0];
 
    for (i=0; i<10; i++) //для элементов
        {
            for (j=0; j<10; j++) // для ящиков
                {
                    if (b[j]+a[i]<11)
                        {
                            b[j]=b[j]+a[i]; cout<<"\n элемент a"<<i<<" добавлен в ящик b"<<j<<"="<<b[j]; break;
                        }
                                                
                }
        }
        cout<<"\n------------------------\n";
    for (i=0; i<10; i++) //вывод на экран всех ящиков
            {cout<<b[i]<<" ";}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.