Cod sursa(job #3270549)

Utilizator tomavladnicolae@gmail.comTomavlad [email protected] Data 23 ianuarie 2025 18:00:20
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int a[500005],n,k,A,B,sp[500005];
long long F(int B)
{
    int i,fr[100001]={1,0};
    long long cnt=0;
    sp[0]=0;
    for(i=1;i<=n;i++)
    {
        sp[i]=(sp[i-1]+a[i])%k;
        if(i>B)
            fr[sp[i-B-1]]--;
        cnt+=fr[sp[i]];
        fr[sp[i]]++;
    }
    return cnt;
}
int main()
{
    int i;
    fin>>n>>k>>A>>B;
    for(i=1;i<=n;i++)fin>>a[i];
    fout<<F(B)-F(A-1);
    return 0;
}