Как выдержит ли сумка данное количество предметов или нет. подсчитать формулу сколько она выдержит. если выдержит, то сколько добавить, если нет, то сколько выложить !
Смотря какая книга ,тетрадка ,учебник и пока кому предмету.Нужна она тебе в данный урок или момент .Если не нужна ,то тогда не надо её брать.Также поступки и с остальными предметами.
{Автор: Рудницкий В. Л. Ограничения: Последовательность не может быть длинее NN. Откуда: Олимпиада, KZ, 2016.} const NN = 10000; var a : array [1 .. NN] of integer; i, j, d, N: integer; begin write('Введите длину массива: '); readln(N); writeln('Введите массив чисел через пробел:'); for i := 1 to N do read( a[i] ); { Удаляем повторы чисел } for i := 1 to N-1 do for j := i+1 to N do if a[i] = a[j] then a[j] := 0; { Создаем последовательность заполняя не нужные числа нулями } for i := 2 to N do if ( a[i-1] > a[i] ) and ( a[i] <> 0 ) then a[i] := 0; { Суммируем не нулевые элементы } d := 0; for i := 1 to N do if a[i] <> 0 then d := d + 1; writeln('Максимальная длинна массива после удалений: ',d); end.
Я бы сделал так: Загоняем все 5 чисел в массив. Делаем сортировку. В итоге получаем, что в массиве в интервале massiv[0]..massiv[3] будут лежать минимальные числа. Берем их, суммируем, получаем минимально возможную сумму. Аналогично и с максимальной, только суммировать будем с massiv[1]..massiv[4].
Код будет примерно такой: int max_possible_sum(char *massiv[5]){ for (int i = 1; i <5; ++i) { int sum += massiv[i]; } return sum; }
Аналогично и для самой малой суммы: int min_possible_sum(char *massiv[5]){ for (int i = 0; i <4; ++i) { int sum += massiv[i]; } return sum; }