Так что проблема в том, что этот код выдает ошибку malloc при запуске. Вводимые данные: n = 2, x = 4.
Я думаю, что проблема с вектором pre, потому что это происходит, когда вызывается push_back.
int n, x;
cin>>n>>x;
n = (1<<n);
vector<int> taken(n, 0);
vector<int> pre;
for(int i = 1; i < n; i++) {
if(!taken[i]) {
taken[i] = 1;
if(i^x < n)
taken[(i^x)] = 1;
pre.push_back(i);
}
}
Я получаю сообщение об ошибке:
a.out: malloc.c:2394: sysmalloc: Assertion `(old_top == initial_top (av) &&
old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse
(old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
Aborted (core dumped)