Причина появления ошибки ~Segmentation fault (core dumped)~?
Задание:
N школьников из классов А и Б выстроены в ряд. i-й школьник в ряду сказал число с - сколько школьников не с его класса стоят левее в ряду. Вам дан перемешанный массив с. Восстановите любое возможное изначальное расположение учеников.
Формат входных данных
В первой строке находится одно целое число N . Во второй строке находятся N целых чисел - перемешанный массив с
Формат выходных данных
Выведите изначальное расположение учеников в виде строки длины N - состоящей из символов A и B. Гарантируются, что существует хотя бы одна такая строка.
Если есть несколько ответов выведите любое из них
Мой ответ: код незаконченный Пока выводятся изначальное полодение цифр
using namespace std;
int main(){
int n,sa=0,sb=0,j=0;
cin >> n;
int a1[n];
int a2[n];
for(int i=0;i<n;i++){
cin >> a1[i];
}
char b[n];
for(int i=0;i<n;i++){
if(a1[i]==0){
a2[j]=a1[i];
j++;
sb++;
}
}
while(sa+sb!=n){
for(int i=0;i<n;i++){
if(a1[i]==sb){
a2[j]=a1[i];
j++;
sa++;
}
}
for(int i=0;i<n;i++){
if(a1[i]==sa){
a2[j]=a1[i];
j++;
sb++;
}
}
}
for(int i=0;i<n;i++){
cout << a2[i];
}
return 0;
} ```
В некоторых случаях выводится ошибка:
Segmentation fault (core dumped)
Например:
5
0 0 2 1 3