Потому, что после ввода числа с помощью >> в буфере ввода остаётся конец строки, который вводится первым getline. Это стандартные грабли во многих языках программирования. В Python же проблему обошли, разрешив вводить только строку целиком.
Можно сделать как в Python: использовать для ввода только getline и явно преобразовывать строки в числа.
Но если хочешь смешивать разные способы ввода, то между использованием >> и getline необходимо очищать входной буфер:
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
https://ru.stackoverflow.com/questions/562229/Очистка-буфера-ввода-cin P.S. Использовать в C++ массивы вида A[2] или A[n] - плохая идея. Полноценные массивы реализуются в языке стандартными классами array и vector.