Другие языки программирования и технологии

задача на паскале нужна помощь

Имя входного файлаinput.txt Имя выходного файлаoutput.txt Максимальное время работы на одном тесте2 секунды Ограничение по памяти64 Мб Имеется N одинаковых деталей, каждую из которых нужно обработать на одном из трех станков, выполняющих одну и ту же операцию. Производительность первого станка – 1 деталь за 2 минуты, второго – 1 деталь за 5 минут, третьего – 1 деталь за 7 минут. Требуется распределить детали по станкам так, чтобы время обработки всей партии было наименьшим. Формат входных данных Во входном файле записано число N (0 ≤ N ≤ 109). Формат выходных данных В первой строке выходного файла выведите время обработки. Далее в 3-х строчках выведите два числа через пробел – количество деталей, обработанных каждым станком, и время работы соответствующего станка. Пример input.txtoutput.txt 200238 119 238 47 235 34 238 5970 35 70 14 70 10 70
PascalABC.Net
Решение задачи полным перебором. Только алгоритм решения, без организации ввода-вывода из файла.

var i1, i2, i3, N :integer;
TT : integer;
MinT : array[1..4] of integer;
begin
N := 10; //Количество деталей
//Временно считаем что минимальное время - это если все обработать на 1 станке
MinT[4] := N*2;//Максимальное время работы станка из трех
MinT[1] := N; //Сколько деталей обрабатывается на 1 станке
MinT[2] := 0; //Сколько деталей обрабатывается на 2 станке
MinT[3] := 0; //Сколько деталей обрабатывается на 3 станке

//Перебираем все возможные комбинации
for i1 := 0 to N do
for i2 := 0 to N do
for i3 := 0 to N do begin
//Если число обрабатываемых деталей равно N
if (i1+i2+i3 = N) then begin
TT := max(max(i1*2, i2*5), i3*7); //Находим какой станок работает дольше
if TT < MinT[4] then begin
MinT[1] := i1;
MinT[2] := i2;
MinT[3] := i3;
MinT[4] := TT;
end;
Writeln(i1:4,i2:4, i3:4, ' | ', i1*2:4, i2*5:4, i3*7:4, ' max ', TT:5);
end;
end;
writeln('Минимальное время обработки ',MinT[4]);
writeln('1 станок ', MinT[1], ' Время работы: ', MinT[1]*2);
writeln('2 станок ', MinT[2], ' Время работы: ', MinT[2]*5);
writeln('3 станок ', MinT[3], ' Время работы: ', MinT[3]*7);
end.
ДМ
Джон Мауль
7 015
Лучший ответ
сколько заплатите ?
Ye yfhjl j,yfuktk? jkbvgbfle ghjczn htibnm? f cfvbc ckf,j&
А самому слабо, или лень одалевает?
Олимпиадная задача по программированию.
Такие задачи нужно решать самому.
А если мозгов нету, то и не стоит начинать.