Mamy dane ciąg liczb naturalnych a = a1,a2,...,an oraz liczbę naturalną m. W ilu spójnych (tj. jedno kawałkowych) podciągach
ciągu a suma elementów jest podzielna przez m?
Podciągi uznajemy za rożne, jeżeli ich umiejscowienia w ramach ciągu a są rożne. W szczególności, przykładem spójnego podciągu ciągu a jest (jeden jedyny) sześcioelementowy(1 ≤ n ≤ 1000000, 2 ≤ m ≤ 1000000) i (0 ≤ ai ≤ 1000000000),
#include <cstdio>
using namespace std;
long long a,b,x,sum=0,tab[1000001]={0},l=1;
int main()
{
scanf("%lld%lld",&a,&b);
for(long long i=0;i<a;++i){
scanf("%lld",&x);
sum+=x;
tab[i]=sum;
}
for(long long i=0;i<a;++i){
for(int j=i;j<a;++j){
if(i==0&&tab[j]%b==0)l++;
if(i>0&&(tab[j]-tab[i-1])%b==0)l++;
}
}
printf("%lld",l);
}
3 pierwsze testy wchodzą, ale potem w następnych 7 jest limit czasowy. Co tutaj zrobić? Należy jakoś podliczać już przy samym wprowadzaniu?