Cod sursa(job #508930)

Utilizator mraresMardare Rares mrares Data 9 decembrie 2010 22:18:06
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#define oops 1337
#define nmax 500001

using namespace std;

ifstream fin("divk.in");
ofstream fout("divk.out");

int n, k, a, b;
int s[nmax], m[nmax];
long long maxim;

int main()
{
    int i, var;
    fin >> n >> k >> a >> b;
    for(i=1; i<=n; ++i)
    {
        fin >> var;
        //var lavabil
        s[i] = (s[i-1] + var)%k;
        //fout << s[i] << " ";
    }
    //second try
    for(i=a; i<=n; ++i)
    {
        ++m[s[i-a]];
        if(i>b)
            --m[s[i-b-1]];
        maxim += m[s[i]];
    }
    fout << maxim << "\n";
    return 0;
}