Cod sursa(job #2767520)

Utilizator asdfdajksdjfhfghjhfghjkjgv asdfdajksdjfh Data 6 august 2021 15:38:27
Problema Divk Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, k, a, b, v[500005], sp[500005], nrs;
int fr[100001];

int main()
{
    ifstream read("divk.in");
    ofstream print("divk.out");

    read >> n >> k >> a >> b;
    for(int i = 1; i <= n; i++)
    {
        read >> v[i];
    }

    for(int i = 1;i <= n; i++)
    {
        sp[i] = (sp[i - 1] + v[i]) % k;
        //cout << sp[i] << ' ';
        if(sp[i] == 0 and i >= a and i <= b)
            nrs++;
    }


    // cout<<endl<<"nrs = "<<nrs<<endl;

    for(int i = a + 1; i <= n; i++)
    {
        fr[sp[i - a]]++;
        if(i > b + 1)
            fr[sp[i - b - 1]]--;
        nrs += fr[sp[i]];
    }
    print << nrs;
    return 0;
}