Написать программу, которая определяет минимальное количество перемещений бутылок, обеспечивающих их сортировку по видам,
183
191
Ответы на вопрос:
Представленный алгоритм реализован в программе
var
n, i, j, s : integer;
ss, m, max : longint;
a : array [1..8, 1..8] of integer;
p, pmax : array [0..8] of integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
assign(f2,'output.txt'); rewrite(f2);
readln(f1,n); ss:=0;
for i:=1 to n do
for j:=1 to n do
begin read(f1,s); ss:=ss+s; a[i,j]:=s end;
for i:=0 to n do p[i]:=i;
max:=0;
repeat
m:=0; for i:=1 to n do m:=m+a[i,p[i]];
if m>max then begin max:=m; pmax:=p end;
j:=n; repeat j:=j-1 until p[j]<p[j+1];
if j>0 then
begin
i:=n+1; repeat i:=i-1 until p[i]>p[j];
s:=p[i]; p[i]:=p[j]; p[j]:=s;
for i:=j+1 to (n+j+1) div 2 do
begin s:=p[i]; p[i]:=p[n+j+1-i]; p[n+j+1-i]:=s end
end
until j=0;
for i:=1 to n do write(f2,chr(pmax[i]-1+ord('A')));
writeln(f2);
write(f2,ss-max);
close(f2)
end.
var
n, i, j, s : integer;
ss, m, max : longint;
a : array [1..8, 1..8] of integer;
p, pmax : array [0..8] of integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
assign(f2,'output.txt'); rewrite(f2);
readln(f1,n); ss:=0;
for i:=1 to n do
for j:=1 to n do
begin read(f1,s); ss:=ss+s; a[i,j]:=s end;
for i:=0 to n do p[i]:=i;
max:=0;
repeat
m:=0; for i:=1 to n do m:=m+a[i,p[i]];
if m>max then begin max:=m; pmax:=p end;
j:=n; repeat j:=j-1 until p[j]<p[j+1];
if j>0 then
begin
i:=n+1; repeat i:=i-1 until p[i]>p[j];
s:=p[i]; p[i]:=p[j]; p[j]:=s;
for i:=j+1 to (n+j+1) div 2 do
begin s:=p[i]; p[i]:=p[n+j+1-i]; p[n+j+1-i]:=s end
end
until j=0;
for i:=1 to n do write(f2,chr(pmax[i]-1+ord('A')));
writeln(f2);
write(f2,ss-max);
close(f2)
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Другие предметы
-
dima1982032517.12.2022 08:43
-
RinOkumura9919.01.2021 02:24
-
sanek203111.04.2022 10:10
-
Boevoy200223.11.2021 07:05
-
valentinateleg260706.01.2020 01:43
-
dashagorbunova520.12.2020 13:45
-
DipperGo28.06.2023 19:12
-
Натаван1108200403.09.2022 04:36
-
lizamankova9423.01.2022 20:40
-
daniilznanija002.06.2022 12:07
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.