Cod sursa(job #3202764)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 12 februarie 2024 11:27:28
Problema Divk Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");


int n,k,a,b;

const int kmax = 100000;

long long f[kmax + 5];



deque <long long> q;
deque <long long> p;

long long sol;

int main()
{
    fin>>n>>k>>a>>b;
    f[0]++;
    for(int i=1;i<=n;i++)
    {
        int x;
        fin>>x;
        p.push_front(x%k);
        while(q.size() > b){
            f[q.back()]--;
            q.pop_back();
        }
        while(p.size() >= a){

            int bk = p.back();
            int el = (q.front()+bk)%k;
            sol+=f[el];
            f[el]++;
            q.push_front(el);
            p.pop_back();
        }


    }
    fout<<sol;
}