Cod sursa(job #3313735)

Utilizator MXelAMocanu Alexandru-Matei MXelA Data 6 octombrie 2025 10:20:07
Problema Divk Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 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]=sp[i]%k;
    }
    if(b<a)
        swap(a,b);
    for(i=a;i<=n;i++)
    {
        freq[sp[i-a+1]]++;
        if(i>b)
            freq[sp[i-b]]--;
        ans+=freq[sp[i]];
    }
    fout<<ans;
    return 0;
}