#include char zad[500][500]; int nxts[500]; int prvs[500]; int vys[1000]; int score=0; int rem; int fst; int afr,ato; void compact(void) { int i,j,jj,nxt; // printf("com %d %d\n",afr,ato); for (i=afr;i>=0&&i<=ato;i=nxts[i]) { for (j=0,jj=0;j=0&&i<=ato;i=nxt) { nxt=nxts[i]; if (!vys[i]) { if (i==fst) fst=nxts[i]; else nxts[prvs[i]]=nxts[i]; if (nxts[i]>0) prvs[nxts[i]]=prvs[i]; } } } int vyraz(char co,int x,int y) { int ret=1; if (vys[x]<=y) return 0; if (zad[y][x]!=co) return 0; zad[y][x]=0; if (xato) ato=x; if (prvs[x]>=0) ret+=vyraz(co,prvs[x],y); if (nxts[x]>=0) ret+=vyraz(co,nxts[x],y); if (y>0) ret+=vyraz(co,x,y-1); ret+=vyraz(co,x,y+1); return ret; } void findit(int *x,int y,char *co) { int xx,n; for (xx=fst,n=0;xx>=0&&n<*x;n++,xx=nxts[xx]); *x=xx; if (xx<0||y>=vys[xx]) {*co=0;return;} *co=zad[y][xx]; } int main(void) { int n,r,c,i,m,x,y; scanf("%d",&n); while (n--) { scanf("%d%d",&c,&r); for (i=0;iy) zad[y][x]=co; } else { compact(); score+=(sc-2)*(sc-2); rem-=sc; } } } if (!rem) score+=1000; printf("Game over!\nScore dosazene v teto hre je %d bodu.\n",score); printf("Byli bychom radi, kdybyste si zahrali jeste jednou.\n"); printf("Prejete si hrat znovu?\n"); printf("Prijemnou zabavu Vam preje firma ACMTENDO.\n"); } return 0; }