program h; const pismenka: array[1..8] of char = ('a','b','c','d','e','f','g','h'); const znacky: array[1..8] of char =('K','Q','R','R','B','B','N','N'); type pos = record x:char; y:integer; end; var poleW,poleB : array[1..16] of pos; procedure SpracujW(s: string; r: integer); var i, poz:integer; pismenko:integer; begin for i:= 0 to 7 do begin poz := 3 + i*4; case s[poz] of 'K': begin poleW[1].x:=pismenka[i+1]; poleW[1].y:=r; end; 'Q': begin poleW[2].x:=pismenka[i+1]; poleW[2].y:=r; end; 'R': begin if (poleW[3].y=0) then begin poleW[3].x:=pismenka[i+1]; poleW[3].y:=r; end else begin poleW[4].x:=pismenka[i+1]; poleW[4].y:=r; end; end; 'B': begin if (poleW[5].y=0) then begin poleW[5].x:=pismenka[i+1]; poleW[5].y:=r; end else begin poleW[6].x:=pismenka[i+1]; poleW[6].y:=r; end; end; 'N': begin if (poleW[7].y=0) then begin poleW[7].x:=pismenka[i+1]; poleW[7].y:=r; end else begin poleW[8].x:=pismenka[i+1]; poleW[8].y:=r; end; end; 'P': begin pismenko :=9; while (poleW[pismenko].y<>0) do inc(pismenko); poleW[pismenko].x:=pismenka[i+1]; poleW[pismenko].y:=r; end; end; end; end; procedure SpracujB(s: string; r: integer); var i, poz:integer; pismenko:integer; begin for i:= 0 to 7 do begin poz := 3 + i*4; case s[poz] of 'k': begin poleB[1].x:=pismenka[i+1]; poleB[1].y:=r; end; 'q': begin poleB[2].x:=pismenka[i+1]; poleB[2].y:=r; end; 'r': begin if (poleB[3].y=0) then begin poleB[3].x:=pismenka[i+1]; poleB[3].y:=r; end else begin poleB[4].x:=pismenka[i+1]; poleB[4].y:=r; end; end; 'b': begin if (poleB[5].y=0) then begin poleB[5].x:=pismenka[i+1]; poleB[5].y:=r; end else begin poleB[6].x:=pismenka[i+1]; poleB[6].y:=r; end; end; 'n': begin if (poleB[7].y=0) then begin poleB[7].x:=pismenka[i+1]; poleB[7].y:=r; end else begin poleB[8].x:=pismenka[i+1]; poleB[8].y:=r; end; end; 'p': begin pismenko :=9; while (poleB[pismenko].y<>0) do inc(pismenko); poleB[pismenko].x:=pismenka[i+1]; poleB[pismenko].y:=r; end; end; end; end; procedure Nacitaj; var s: array[1..8] of string; i: integer; begin FillChar(poleW, sizeof(polew), 0); FillChar(poleB, sizeof(poleb), 0); {assign(input,'h.in'); reset(input);} Readln; for i := 1 to 8 do begin Readln(s[i]); Readln; end; for i:=1 to 8 do SpracujB(s[i],8-i+1); for i:=8 downto 1 do SpracujW(s[i],8-i+1); { close(input);} end; function IntToStr(a:integer):string; var s:string; begin Str(a,s); result := s; end; procedure Vypis; var i:integer; s:string; begin s:=''; for i:=1 to 16 do begin if poleW[i].y<>0 then begin if i<=8 then s:=s+Znacky[i]; s:=s+poleW[i].x+IntToStr(poleW[i].y)+','; end; end; Writeln('White: ',substr(s,1,length(s)-1)); s:=''; for i:=1 to 16 do begin if poleB[i].y<>0 then begin if i<=8 then s:=s+Znacky[i]; s:=s+poleB[i].x+IntToStr(poleB[i].y)+','; end; end; Writeln('Black: ',substr(s,1,length(s)-1)); end; begin Nacitaj; Vypis; end.