MCITYHAL - Repair City Hall

Tác giả: khuc_tuan

Ngôn ngữ: Pascal

// {$APPTYPE CONSOLE}
 {$mode delphi}

var
    i, j, cur, len, m, n : integer;
    a : array[0..222,0..222] of char;
    count : array[0..222] of integer;

begin
    readln(m,n);
    for i:=0 to m-1 do
        readln(a[i]);
    for j:=0 to n-1 do
    begin
        cur := -1;
        for i:=0 to m-1 do
        begin
            if (a[i,j]='0') and ((i=0) or (a[i-1,j]='1')) then cur := i;
            if (a[i,j]='1') and (cur<>-1) then
            begin
                len := i - cur;
                inc(count[len]);
                cur := -1;
            end;
        end;
        if cur<>-1 then inc(count[m-cur]);
    end;
    for i:=1 to m do if count[i] > 0 then writeln(i, #32, count[i]);
end.

Download