Бригаде строителей поручили уложить квадратной плиткой пол на кухне в виде
Бригаде строителей поручили уложить квадратной плиткой пол на кухне в виде шахматного узора. Но строители работали не очень слаженно, и когда весь пол уже был уложен, оказалось, что в некоторых местах плитки схожего цвета граничат друг с приятелем.
По данному замощению определите, какое малое число строителей могло укладывать плитку.
Входные данныеВходной файл INPUT.TXT содержит восемь строк, состоящих из восьми знаков W и B приобретенное замощение. Знак W означает плитку белого цвета, а символ B чёрную.
Выходные данныеВ выходной файл OUTPUT.TXT нужно вывести одно число - разыскиваемое число строителей.
Задать свой вопрос1 ответ
Василий Долгорожев
Var
i, j, k : integer;
a : array [0..9,0..9] of char;
procedure U(i,j:integer);
var c : char;
begin
c:=a[i,j]; a[i,j]:=' ';
if (c='W')and(a[i+1,j]='B') then U(i+1,j);
if (c='B')and(a[i+1,j]='W') then U(i+1,j);
if (c='W')and(a[i-1,j]='B') then U(i-1,j);
if (c='B')and(a[i-1,j]='W') then U(i-1,j);
if (c='W')and(a[i,j+1]='B') then U(i,j+1);
if (c='B')and(a[i,j+1]='W') then U(i,j+1);
if (c='W')and(a[i,j-1]='B') then U(i,j-1);
if (c='B')and(a[i,j-1]='W') then U(i,j-1);
end;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
for i:=1 to 8 do begin for j:=1 to 8 do
read(a[i,j]);
readln
end;
for i:=1 to 8 do
begin
a[0,i]:=' '; a[9,i]:=' '; a[i,0]:=' '; a[i,9]:=' '
end;
k:=0;
for i:=1 to 8 do
for j:=1 to 8 do
if a[i,j]lt;gt;' ' then
begin
k:=k+1; U(i,j)
end;
write(k);
close(output)
end.
i, j, k : integer;
a : array [0..9,0..9] of char;
procedure U(i,j:integer);
var c : char;
begin
c:=a[i,j]; a[i,j]:=' ';
if (c='W')and(a[i+1,j]='B') then U(i+1,j);
if (c='B')and(a[i+1,j]='W') then U(i+1,j);
if (c='W')and(a[i-1,j]='B') then U(i-1,j);
if (c='B')and(a[i-1,j]='W') then U(i-1,j);
if (c='W')and(a[i,j+1]='B') then U(i,j+1);
if (c='B')and(a[i,j+1]='W') then U(i,j+1);
if (c='W')and(a[i,j-1]='B') then U(i,j-1);
if (c='B')and(a[i,j-1]='W') then U(i,j-1);
end;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
for i:=1 to 8 do begin for j:=1 to 8 do
read(a[i,j]);
readln
end;
for i:=1 to 8 do
begin
a[0,i]:=' '; a[9,i]:=' '; a[i,0]:=' '; a[i,9]:=' '
end;
k:=0;
for i:=1 to 8 do
for j:=1 to 8 do
if a[i,j]lt;gt;' ' then
begin
k:=k+1; U(i,j)
end;
write(k);
close(output)
end.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов