Изменения
→Код получения редакционного предписания
В строке '''S''' содержится последовательность действий, необходимых для получения из первой строки второй кратчайшим образом.
function distance(s1, s2: longint): string; begin n := length(s1); m := length(s2); for i := 1 to n do d[0, i] := i; for i := 1 to m do d[i, 0] := i; for i := 1 to n do for j := 1 to m do if s1[i] = s2[j] then begin d[i, j] := d[i - 1, j - 1]; p[i, j].x := i - 1; p[i, j].y := j - 1; end else begin if (d[i - 1, j] <= d[i, j - 1]) and (d[i - 1, j] <= d[i - 1, j - 1]) then begin d[i, j] := d[i - 1, j] +1; p[i, j].x := i - 1; p[i, j].y := j; end; if (d[i, j - 1] <= d[i - 1, j] )and (d[i, j - 1] <= d[i - 1, j - 1]) then begin d[i, j] := d[i, j - 1] +1; p[i, j].x := i; p[i, j].y := j - 1; end; if (d[i - 1, j - 1] <= d[i, j - 1]) and (d[i - 1, j - 1] <= d[i - 1, j]) then
begin
== Разные цены операций ==