Cod sursa(job #998651)

Utilizator poptibiPop Tiberiu poptibi Data 17 septembrie 2013 19:56:51
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream>
#include <algorithm>
using namespace std;

const int NMAX = 500005;

int N, K, A, B;
long long Cnt[NMAX], V[NMAX], Ans;

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

    fin >> N >> K >> A >> B;
    for(int i = 1; i <= N; ++ i)
    {
        fin >> V[i];
        V[i] = (V[i - 1] + V[i]) % K;
    }

    for(int i = A; i <= N; ++ i)
    {
        Cnt[ V[i - A] ] ++;
        if(i > B) Cnt[ V[i - B - 1] ] --;
        Ans += Cnt[ V[i] ];
    }

    fout << Ans;
}