Cod sursa(job #1978395)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 7 mai 2017 17:20:24
Problema Divk Scor 100
Compilator cpp Status done
Runda Elf e un sef Marime 0.54 kb
#include <bits/stdc++.h>

#define ll long long
#define Nmax 500002
#define Kmax 100002

using namespace std;

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

int N, K, A, B;
int S[Nmax];
int F[Kmax];
int i;
ll cnt;

int main()
{
    fin >> N >> K >> A >> B;
    for(i = 1; i <= N; i++)
    {
        fin >> S[i];
        S[i] = (S[i - 1] + S[i]) % K;
        if(i > B)
            F[S[i - B - 1]]--;
        if(i >= A)
            F[S[i - A]]++;
        cnt += F[S[i]];
    }
    fout << cnt << "\n";
    return 0;
}