int H,W; int iso = 0; int A[3002][3002]; void dfs(int y, int x){ if (A[y][x] == 0) return; A[y][x] = 0; --iso; dfs(y, x-1); dfs(y, x+1); dfs(y-1, x); dfs(y+1, x); } { rd(H,W); REP(y,1,H+1) REP(x,1,W+1) rd(A[y][x]), iso += A[y][x]; REP(y,1,H+1) REP(x,1,W+1) if (A[y][x] == 1){ ++iso; dfs(y,x); } wt(iso); }