Я хочу вычислить сумму произведения каждого подмножества заданного набора элементов $N$. Например, для набора {1, 2, 3} ответ равен 1 + 2 + 3 + 1 * 2 + 1 * 3 + 2 * 3 + 1 * 2 * 3. Я также хотел бы дать ответ по модулю $ М$.
Что я знаю, так это то, что я мог бы вычислить $(x - a_1)(x - a_2)...(x - a_n) - 1$, но это потребовало бы быстрого преобразования Фурье, поэтому могут быть некоторые ошибки округления, но основная проблема с эта идея состоит в том, что это занимает $O(N \log^2 N)$ времени и выполнение по модулю $M$ проблематично. Есть ли более быстрый способ решить эту проблему? Это не моя домашняя работа, я получил это задание от своего учителя, чтобы потренироваться перед соревнованием по программированию, но я действительно застрял на этой задаче.
Ограничения:
$a_i \le 10^9$
$N \le 10^6$
$M \le 10^9$