Wikireporter:Zeroos/Brudnopis6

cin >> w[1];//umownie, do poprawy int maxA = 0; int maxB = 0; int wynik = 0; for(int i=1; i<=n; i++){ //n->długość słowa

    c=w[i];
    if(c=='B'){
        wynik += f[n-i][maxA+1][ maxB==0?0:maxB-1 ];//jeśli maxB == 0 to nie zmniejszaj mB! a jesli mA<2 nie wykonujemy w ogóle tej linijki
        //wstawiamy B
        maxB++;
        maxA--;//jeśli się da
     }else{
        //wstawiamy A
        maxA++; maxB--; //jeśli B > 0;
     }

}


//tablicę f[n][a][b] liczymy dynamicznie f[0][x][y] = 0 f[n][x][y] = f[n-1][x+1][y-1] + f[n-1][x-1][y+1]; //sprawdź, czy nie wyjdzie za zakres