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

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

Помогитеееее

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


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


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


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


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


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


Примеры


№INPUT.TXTOUTPUT.TXT
1WBWBWBBW

BWBBWBWB

WBWWBWBW

WBWWBWWB

BWBBWBWB

WBWBWWBW

BWBWBBWB

WBWBWWBW
4


Информатика (14 баллов) | 68 просмотров
Дан 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 баллов)