#include int main(void) { int r, c, ch, ships, lastch; int JeNad, JeVlevo, JeVlevoNad, JeCislo; int p[1001]; scanf("%d %d",&r, &c); while ((r!=0) && (c!=0)) { getchar(); // printf("r=%d c=%d",r,c); ships = 0; for (int row=0; row=0) { //if (ch=='#') { JeNad = ((row>0) && (p[i]=='#')); JeVlevo = ((i>1) && (lastch=='#')); JeVlevoNad = ((i>1)&&(row>0)&&(p[i-1]=='#')); JeCislo = 0; if (JeVlevoNad) JeCislo += 1; if (JeNad) JeCislo += 2; if (JeVlevo) JeCislo += 4; if (ch=='#') JeCislo += 8; if (JeCislo==8) { ships++; //printf("lod: row=%d i=%d Nad=%d Vlevo=%d Cislo=%d\n",row,i,JeNad,JeVlevo,JeCislo); } if ((JeCislo==14)||(JeCislo==9)||(JeCislo==11)||(JeCislo==6)||(JeCislo==7)) { ships = -1; //printf("giveup: row=%d i=%d Nad=%d Vlevo=%d Cislo=%d\n",row,i,JeNad,JeVlevo,JeCislo); } //} // ch=='#' if (i>1) { p[i-1]=lastch; } } // ships >= 0 } // i ... c p[c] = ch; getchar(); } // row ... r if (ships>=0) { printf("There are %d ships.\n", ships); } else { printf("Bad placement.\n"); } scanf("%d %d",&r, &c); } // while return 0; }