Cod sursa(job #742621)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 30 aprilie 2012 21:11:53
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>

using namespace std;

ifstream f("divk.in");
ofstream g("divk.out");

typedef long long int lung;
const int maxn=500005;

int n, a, b, k, i;
lung s[maxn], sum[maxn], ans;

void read()
{
    int i, x;
    f>>n>>k>>a>>b;
    for(i=1; i<=n; ++i)
    {
        f>>x;
        s[i]=(s[i-1]+x)%k;
    }
}

int main()
{
    read();
    for(i=a; i<=n; ++i)
    {
        sum[s[i-a]] += 1;
        if(i>b) sum[s[i-b-1]] -= 1;
        ans += sum[s[i]];
    }
    g<<ans;
    return 0;
}