Найти номера подмассива массива, сумма которого делится на данное число

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

Вопрос

Найти числа подмассивов, сумма которых делится на данное число.

Моя работа

Я сделал один алгоритм, сложность которого O (N ^ 2), здесь N = размер массива.

Мой код

#include

using namespace std;

 main() {
    int N;
    int P;
    int T;
    int val;
    long long int count = 0;
    long long int answer = 0;
    scanf("%d", &T);
    //T = 20;

    for(int k = 1; k 

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

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