// overhead !!!!!! DONE !!!!!!! #include #include #include char A[100][100]; int w, h; void erase (int x, int y, char c) { A[x][y] = '0'; if (x-1 >= 0 && A[x-1][y] != '0') erase(x-1, y, c); if (y+1 < h && A[x][y+1] != '0') erase(x, y+1, c); if (x+1 < w && A[x+1][y] != '0') erase(x+1, y, c); if (y-1 >= 0 && A[x][y-1] != '0') erase(x, y-1, c); } void main() { memset(A, '0', sizeof(A) ); ofstream out; out.open("mission.out"); ifstream in; in.open("mission.in"); while (1) { in >> w >> h; // width / height if (w < 0 || h < 0) break; char temp[10]; in.getline(temp, 10); // skip for (int i=0; i < h; i++) { char inp[200]; in.getline(inp, 200); for (int j=0; j < strlen(inp); j++) A[j][i] = inp[j]; } int cnt = 0; // scan for colour for (i=0; i < h; i++) for (int j=0; j < w; j++) if (A[j][i] != '0') {cnt++; erase(j, i, A[j][i]);}; out << cnt << endl; } out.close(); in.close(); } Downloader failed! Response object 006~ASP 0159~Buffering Off~Buffering must be on.