Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project100110;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- const
- MAXIN = 1500;
- type
- time = record
- x, y: integer;
- end;
- var
- n, m, k: Int64;
- i, j, ans: integer;
- Ch: array[1..1500, 1..1500] of char;
- dp: array [0..1500, 1..1500] of Integer;
- mark: array [0..1500] of Integer;
- a: array [0..1500] of time;
- procedure dfs(v: integer);
- var
- i: integer;
- begin
- Mark[v] := 1;
- for i := 1 to k do
- if (dp[v][i] = 1) and (Mark[i] = 0) then
- dfs(i);
- end;
- begin
- {assign(input,'input.txt');
- assign(output,'output.txt');
- rewrite(output);
- reset(input);
- }Readln(n, m);
- Ans := 0;
- k := 0;
- for i := 1 to n do
- begin
- for j := 1 to m do
- read(ch[i][j]);
- Readln;
- end;
- for i := 1 to n do
- for j := 1 TO m DO
- if (Ch[i][j] ='#') then
- begin
- Inc(k);
- a[k].x := i;
- a[k].y := j;
- end;
- for i := 1 to k do
- for j := 1 to k do
- dp[i][j] := 0;
- for i := 1 to k do
- Mark[i] := 0;
- for i := 1 to k do
- for j := 1 to k do
- if ((Abs(a[i].x - a[j].x) = 1) and (Abs(a[i].y - a[j].y) < 1)) or ((Abs(a[i].x - a[j].x) < 1) and (Abs(a[i].y - a[j].y) = 1)) then
- dp[i][j] := 1;
- for i := 1 to k do
- if (Mark[i] = 0) then
- begin
- dfs(i);
- Inc(ans);
- end;
- Writeln(ans);
- Readln;
- readln;
- close(input);
- close(output);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement