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

Бригаде строителей поручили уложить квадратной плиткой пол на кухне в виде шахматного узора. Но строители работали не очень слаженно, и когда весь пол уже был уложен, оказалось, что в некоторых местах плитки одинакового цвета граничат друг с другом. По заданному замощению определите, какое минимальное число строителей могло укладывать плитку. Входные данные Входной файл INPUT.TXT содержит восемь строк, состоящих из восьми символов W и B – полученное замощение. Символ W обозначает плитку белого цвета, а символ B – чёрную. Выходные данные В выходной файл OUTPUT.TXT нужно вывести одно число - искомое число строителей.
Гость
Ответ(ы) на вопрос:
Гость
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. 
Не нашли ответ?
Ответить на вопрос
Похожие вопросы