Cod sursa(job #2462714)

Utilizator DavvDrgDavid Dragostin DavvDrg Data 27 septembrie 2019 18:59:26
Problema Divk Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;
long long ap[500005];
long long v[500005];
long long f[10000002];
ifstream in("divk.in");
ofstream out("divk.out");
int main()
{
    long long n,k,a,b,i,ans=0;
    in>>n>>k>>a>>b;
    for(i=1;i<=n;i++)
    {
        in>>v[i];
        ap[i]=(ap[i-1]+v[i])%k;
    }
    for(i=a;i<=b;i++)
    {
        f[ap[i-a]]++;
        if(i>=a)
            ans+=f[ap[i]];
    }
    for(i=b+1;i<=n;++i)
    {
        f[ap[i-a]]++;
        f[ap[i-b-1]]--;
        ans+=f[ap[i]];
    }
    out<<ans;
    return 0;
}