Tasowanie kart w określony sposób

0

Mam takie oto zadanie:

Karty
Limit pamięci: 32 MB
Tasujemy talię kart za pomocą następujących operacji:

A - przełożenie pierwszej karty z góry na dół stosu
B - przełożenie drugiej karty z góry na dół stosu
Twoim zadaniem jest obliczyć, która karta będzie na górze n-elementowej talii kart po k operacjach. Karty są ponumerowane kolejno od góry liczbami od 1 do n.
Wejście
W pierwszym wierszu znajdują się dwie liczby całkowite n i k (int). W drugim wierszu znajduje się k znaków: A lub B, oznaczających rodzaj kolejnych operacji na talii kart.
Wyjście
Pierwszy i jedyny wiersz wyjścia powinien zawierać jedną liczę całkowitą - numer karty na górze stosu.

Moje rozwiązanie podczas którego wyświetla mi komunikat, że program przestał działać z powodu wystąpienia problemu:

#include <cstdio>


int main()
{   int n, k, pom;

scanf("%d %d\n", &n, &k);
int kar[n];
for (int x=0; x<=n-1; x++)
    kar[x]=x+1;

char p[k+1];

for (int i=0; i<=k-1; i++)
{scanf("%s", p[i]);

if (p[i]='A')
{pom=kar[0];
for (int y=n-1; y>=1; y--)
    kar[y]=kar[y-1];
kar[n-1]=pom;}
else
{
    pom=kar[1];
    for (int z=n-1; z>=2; z--)
        kar[z]=kar[z-1];
        kar[n-1]=pom;}
    }
    printf("%d", kar[0]);





    return 0;
}

Ktoś mi wytknie błędy?

0
  1. Formatowanie kodu
  2. po co petle <= skoro mozna < i nie dawac tego -1?
  3. indeksujemy od 0 nie od 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1