Cod sursa(job #1610427)

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

using namespace std;
int s,n,A,B,x,k,i;
long long ans=0LL;
vector<int> v[100002];
int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);

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

    for(i=1;i<=n;++i)
    {
         scanf("%d",&x);
         s+=x;
         s%=k;
         while(!v[s].empty() && i-v[s].front()>B) v[s].erase(v[s].begin());
         ans+=1LL*v[s].size();
         v[s].push_back(i);
    }
    printf("%lld\n",ans);

    return 0;
}