середа, 6 січня 2016 р.

2014. Золотой песок

Сотрудники завода по производству золотого песка из воздуха решили поправить свое финансовое положение. Они пробрались на склад завода, где хранился золотой песок трех видов. Один килограмм золотого песка первого вида они смогли бы продать за A1 гривен, второго вида – за A2 гривен, а третьего вида – за A3 гривен. Так получилось, что у сотрудников оказалось с собой только три емкости: первая была рассчитана на B1 килограмм груза, вторая на B2 килограмм, а третья на B3 килограмм. Им надо было заполнить полностью все емкости таким образом, чтобы получить как можно больше денег за весь песок. 
При заполнении емкостей нельзя смешивать песок разных видов, то есть, в одну емкость помещать более одного вида песка, и заполнять емкости песком так, чтобы один вид песка находился более чем в одной емкости.  Требуется написать программу, которая определяет, за какую сумму предприимчивые сотрудники смогут продать весь песок в случае наилучшего для себя заполнения емкостей песком.  Входные данные:  Выходные данные:  В единственной строке входного потока записано 6 натуральных чисел A1, A2, A3, B1, B2, B3, записанных в одной строке через пробел. Все числа не превосходят 1000. В единственную строку выходного потока нужно вывести единственное целое число – сумму в гривнах, которую смогут сотрудники заработать в случае наилучшего для себя заполнения емкостей песком.

Пример входного файла (input.txt): 1 2 3 3 2 1    Пример выходного файла (output.txt): 14

program pesok;
var
I,j,par,S : integer;
A,B : array [1..3]of integer;
begin
  Assign (input,'input.txt');
  Reset (input);
  for i:=1 to 3 do
     read (A[I]);
   for i:=1 to 3 do
     read (B[I]);
  for i:=1 to 2 do
    for j:=I+1 to 3 do
      if A[I]<A[j] then
        begin
          par:=A[j];
          A[j]:=A[I];
          A[i]:=par;
        end;
 
 for i:=1 to 2 do
    for j:=I+1 to 3 do
      if B[I]<B[j] then
        begin
          par:=B[J];
          B[j]:=B[I];
          B[i]:=par;
        end;
     
  Assign (output,'output.txt');
  Rewrite(output);
  S:=0;
  for I:=1 to 3 do
    S:=S+A[i]*B[i];
  write(S);
  Close (input);
  Close (output);
end.

Немає коментарів:

Дописати коментар