Cod sursa(job #3337259)

Utilizator Stefanstef99Stefan Puica Stefanstef99 Data 27 ianuarie 2026 08:29:24
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, k, A, B;
int a[500005], s[500005], fr[100005];

long long F(int x)
{
    int i, j;
    long long nrsecv = 0;
    s[0] = j = 0;
    fr[0] = 1;
    for(i = 1; i <= 100000; i++) fr[i] = 0;
    for(i = 1; i <= n; i++)
    {
        s[i] = (s[i - 1] + a[i]) % k;
        if(i - j > x)
        {
            fr[s[j]]--;
            j++;
        }
        nrsecv += fr[s[i]];
        fr[s[i]]++;
    }
    return nrsecv;
}

int main()
{
    int i;
    fin >> n >> k >> A >> B;
    for(i = 1; i <= n; i++) fin >> a[i];
    fout << F(B) - F(A - 1) << '\n';
    return 0;
}