Гвоздики В дощечку в ряд вбито 10 гвоздиков, таким образом, получилось 9 последовательных промежутков между ними. Длины промежутков (подряд, слева направо) оказались равны
Между некоторыми соседними гвоздиками можно натянуть верёвочку, будем считать длину этой верёвочки равной длине промежутка. Вам необходимо привязать верёвочки так, чтобы к каждому гвоздику была привязана верёвочка хотя бы с одной стороны, при этом суммарная длина всех верёвочек была бы минимальной.
ответ запишите в виде последовательности из 9 чисел, равных 0 или 1. Число 0 означает, что в соответствующем промежутке нет верёвочки, число 1 означает, что в этом промежутке есть верёвочка.
Условие, что к каждому гвоздику привязана хотя бы одна верёвочка, означает, что в ответе нет двух нулей подряд, а также, что первым и последним символом ответа является 1.
Например, пусть в задании было дано 5 гвоздиков и 4 промежутка длиной 1, 2, 3, 4. Длина верёвочек будет минимальной, если привязать верёвочки в промежутках 1, 2 и 4. ответ тогда следовало бы записать в виде 1101.
n,k,i:integer;
begin
for n:=1 to 2 do
begin
writeln('Введите строку ',n,':');
readln(s);
k:=0;
for i:=1 to length(s) do
begin
case s[i] of
'[': k:=k+1;
']': k:=k-1;
end;
end;
if k=0
then writeln('В строке ',s,' количество [ и ] одинаково')
else writeln('В строке ',s,' количество [ и ] не одинаково');
end;
end.
Пример:
Введите строку 1:
c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c
В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково
Введите строку 2:
Просто [ пример ]] со [[ скобками
В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
begin
var a:=ReadLines('m17.txt').JoinIntoString.ToIntegers;
a.Println;
var b:=a.Select((x,i)->Rec(x,i)).Where(x->x.Item1<0)
.Select(x->x.Item2).ToArray;
if b.Count<>2 then
Writeln('Количество отрицательных элементов не равно двум')
else begin
a:=SeqFill(b[0],0).Concat(a.Skip(b[0]).Take(b[1]-b[0]+1))
.Concat(SeqFill(a.Length-b[1]-1,0)).ToArray;
a.Println
end
end.
Тестовое решение:
23 14 7 15 0 13 -6 41 18 13 8 42 27 -11 3 19 10
0 0 0 0 0 0 -6 41 18 13 8 42 27 -11 0 0 0
Файл с исходными данными имеет имя m17.txt. Тестовый файл находится во вложении. Разбивка на строки сделана по 5 значений, но может быть совершенно произвольной. Также нет привязки именно к 17 числам, главное - чтобы отрицательных чисел было ровно два, иначе будет выдано сообщение о их неверном количестве.