Cod sursa(job #2518079)

Utilizator betybety bety bety Data 4 ianuarie 2020 21:42:57
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int lim_n=5e5+5;
const int lim_k=1e5+4;
int v[lim_n],f[lim_k];
int main()
{
    int n,k,a,b,ca,cb;
    in>>n>>k>>a>>b;
    ca=a;
    cb=b;
    for(int i=1;i<=n;++i)
    {
        in>>v[i];
        v[i]%=k;
        v[i]=(v[i-1]+v[i])%k;
    }
    for(int i=ca;i<=cb;++i)
        f[v[i]]++;
    long long int cnt=0;
    for(int i=0;i<=n-a;++i)
    {
        cnt+=1LL*f[v[i]];
        f[v[ca]]--;
        ca++;
        if(cb<n)
            cb++,f[v[cb]]++;
    }
    out<<cnt;
    return 0;
}