#include #include #include #include int main() { int N; scanf("%d", &N); //100000 char pole[N]; scanf("%s", pole); int kolobezka; int vysledok = 0; int i,y; //int dlzka = strlen(pole); int pocetR = 0; int pocetB = 0; for (i=0;i pocetB) { kolobezka = pocetR; pocetR = pocetB; pocetB = kolobezka; } int actual = sqrt(pocetR); for (y=actual;y>0;y--) { int odmocnina = y; /*if ((pocetR - (odmocnina * odmocnina)) == 0) { //prirodzene }*/ int noveR=0, noveB=0; //int vysledok = 0; int ramcek = (odmocnina * 4) + 4; /* if (ramcek < odmocnina*odmocnina*odmocnina*odmocnina) { odmocnina = 1; ramcek = 8; }*/ /*if ((ramcek == pocetB) && pocetR == odmocnina) { printf("1"); } else {*/ for (i=0;i=0;i--) { if (noveR == odmocnina*odmocnina && noveB == ramcek) { vysledok++; break; } else { if (noveR <= odmocnina*odmocnina && noveB <= ramcek) { if (pole[i] == 'O') { noveR++; //printf("\n noveR %d odmocnina %d", noveR, odmocnina*odmocnina); } else if (pole[i] == 'X') { noveB++; //printf("\n noveB %d ramcekB %d", noveB, ramcek); } } else { //printf("fuj"); break; } } } // } } printf("%d", vysledok); return 0; }