Cod sursa(job #1571123)

Utilizator armandpredaPreda Armand armandpreda Data 17 ianuarie 2016 11:15:29
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>

using namespace std;

ifstream cin("divk.in");
ofstream cout("divk.out");

const int LIM=500005;
int n, k, a, b, v[LIM], nr[LIM];
int main()
{
    cin>>n>>k>>a>>b;
    int unu=0, doi=0;
    for(int i=1; i<=n; ++i)
    {
        cin>>v[i];
        v[i]=(v[i]+v[i-1])%k;
    }
    long long ans=0;
    for(int i=a; i<=n; ++i)
    {
        nr[ v[i-a] ]++;
        ans+=1ll*nr[ v[i] ];
        if(i>=b)
            nr[ v[i-b] ]--;
    }
    cout<<ans;
    return 0;
}