Cod sursa(job #3313519)

Utilizator MXelAMocanu Alexandru-Matei MXelA Data 4 octombrie 2025 22:41:31
Problema Divk Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <iostream>
#include <fstream>
#define NMAX 500000
#define KMAX 100000

using namespace std;
using ll = long long;

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

int sp[NMAX+2];
int freq[KMAX+2];

int main()
{
    int n,k,a,b,i;
    fin>>n>>k>>a>>b;
    ll ans=0;
    for(i=1;i<=n;i++)
    {
        fin>>sp[i];
        sp[i]+=sp[i-1];
        sp[i]%=k;
    }
    for(i=a+1;i<=n;i++)
    {
        freq[sp[i-a]]++;
        if(i-b>=2)
            freq[sp[i-b-1]]--;
        ans+=freq[sp[i]];
    }
    fout<<ans;
    return 0;
}