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