Я указал, что вы не можете улучшить сложность алгоритма, я перефразировал первое предложение, чтобы сделать его более понятным.

ыло интересно, существует ли какой-либо алгоритм сложности O (n ^ 2) для генерации всех подпоследовательностей массива. Я знаю алгоритм, но это занимает O ((2 ^ n) * n) времени.

int main() {
    int n; 
    cin >> n;
    vector<int> a(n);
    for(int i = 0; i < n; ++i) 
        cin >> a[i];
    int64_t opsize = pow(2,n);
    for (int counter = 1; counter < opsize; counter++) {
        for (int j = 0; j < n; j++) {
           if (counter & (1 << j))
                 cout << a[j] << " ";
        }
        cout << endl;
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос