Cod sursa(job #1235871)

Utilizator apopeid15Apopei Daniel apopeid15 Data 30 septembrie 2014 20:17:09
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
#include<algorithm>
 
using namespace std;
 
 
long long  s[500001],a[500001];
int i,j,k,m,u,n,x,y;
 
int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d",&n,&k,&x,&y);
    long long val=0;
    for (i=1; i<=n; ++i)
    {
            scanf("%d",&val);
            s[i]=(s[i-1]+val)%k;
    }
    long long sol=0;
    for (i=x; i<=n; ++i)
    {
       ++a[s[i-x]];
       if (i>y) --a[s[i-y-1]];
       sol+=a[s[i]];
    }
    printf("%lld",sol);
    return 0;
}