program pd; const dx:array[1..8] of integer=(-1,0,0,1,1,1,-1,-1); dy:array[1..8] of integer=(0,1,-1,0,1,-1,-1,1); var n,m,i,j,num:longint; s:char; a:array[0..1000,0..1000]of boolean; b:array[0..1000,0..1000]of longint; d:array[1..500000,1..2]of longint; procedure chuli(x,y:integer); var t,w,p,q,k:longint; begin a[x,y]:=false; d[1,1]:=x; d[1,2]:=y; t:=1; w:=1; repeat for k:= 1 to 8 do begin p:=d[t,1]+dx[k]; q:=d[t,2]+dy[k]; if (p>0) and (p<=n) and (q>0) and (q<=n) and a[p,q] then begin w:=w+1; d[w,1]:=p; d[w,2]:=q; a[p,q]:=false; end; end; t:=t+1; until t>w; num:=num+1; end; begin readln(n); fillchar(a,sizeof(a),true); for i:= 1 to n do begin for j:= 1 to n do begin read(s); b[i,j]:=ord(s)-ord('0'); if b[i,j]=0 then a[i,j]:=false; end; readln; end; for i:= 1 to n do for j:= 1 to n do begin if a[i,j]=true then chuli(i,j); end; writeln(num); end. /************************************************************** Problem: 2068 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/