MCITYHAL - Repair City Hall

Tác giả: RR

Ngôn ngữ: Pascal

{$R+,Q+}
{$Mode objFPC}
uses math;
const
  FINP='';
  FOUT='';
  MAXN=222;
var
  m,n:longint;
  a:array[-1..MAXN,-1..MAXN] of char;
  d:array[-1..MAXN,-1..MAXN] of longint;
  count:array[1..MAXN] of longint;
  f1,f2:text;
procedure openF;
begin
  assign(f1,FINP); reset(f1);
  assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
  close(f1);
  close(f2);
end;
procedure inp;
var
  i,j:longint;
begin
  readln(f1,m,n);
  for i:=1 to m do
    begin
      for j:=1 to n do read(f1,a[i,j]);
      readln(f1);
    end;
  for j:=1 to n do
    a[m+1,j]:='1';
end;
procedure solve;
var
  i,j:longint;
begin
  for i:=1 to m do
  for j:=1 to n do
    if a[i,j]='0' then d[i,j]:=d[i-1,j]+1;
  for i:=1 to m do
  for j:=1 to n do
    if (a[i,j]='0') and (a[i+1,j]='1') then inc(count[d[i,j]]);
end;
procedure ans;
var
  i:longint;
begin
  for i:=1 to m do
    if count[i]>0 then
      writeln(f2,i,' ',count[i]);
end;
begin
  openF;
  inp;
  solve;
  ans;
  closeF;
end.

Download