Бригаде строителей поручили уложить квадратной плиткой пол ** кухне в виде шахматного...

0 голосов
112 просмотров

Бригаде строителей поручили уложить квадратной плиткой пол на кухне в виде шахматного узора. Но строители работали не очень слаженно, и когда весь пол уже был уложен, оказалось, что в некоторых местах плитки одинакового цвета граничат друг с другом.

По заданному замощению определите, какое минимальное число строителей могло укладывать плитку.

Входные данные

Входной файл INPUT.TXT содержит восемь строк, состоящих из восьми символов W и B – полученное замощение. Символ W обозначает плитку белого цвета, а символ B – чёрную.

Выходные данные

В выходной файл OUTPUT.TXT нужно вывести одно число - искомое число строителей.


Информатика (14 баллов) | 112 просмотров
Дан 1 ответ
0 голосов

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]<>' ' then
begin 
 k:=k+1; U(i,j)  
end;  
write(k); 
 close(output) 
end. 

(545 баллов)