Cod sursa(job #1610437)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 23 februarie 2016 15:41:57
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include <vector>
#include <cstdio>

using namespace std;
int n,A,B,x,k,i,nr[100002],s[100002];
long long ans=0LL;

int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);

    scanf("%d%d%d%d",&n,&k,&A,&B);

    for(i=1;i<=n;++i)
    {
         scanf("%d",&x);
         s[i]=s[i-1]+x;s[i]%=k;

         if(i>=A) ++nr[s[i-A]];
         if(i>B) --nr[s[i-B-1]];
         ans+=1LL*nr[s[i]];
    }
    printf("%lld\n",ans);

    return 0;
}