Cod sursa(job #3202675)

Utilizator marelucaMare Luca Ghita mareluca Data 12 februarie 2024 10:16:12
Problema Divk Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

int vec[200001];
int n, k, a, b, dr = 1, st = 1, divk;

int main()
{
    ifstream cin("divk.in");
    ofstream cout("divk.out");

    cin >> n >> k >> a >> b;

    for(int i = 1; i <= n; i ++){
        cin >> vec[i];
    }

    for(int i = 1; i <= n; i ++){
        vec[i] += vec[i - 1];
        vec[i] %= k;
    }

    while(st <= n)
    {
        if(vec[dr] == vec[st - 1] and (dr - st + 1 >= a and dr - st + 1 <= b)){
            divk ++;
            //cout << st << ' ' << dr << ' ' << (dr - st + 1) << '\n';
        }

        dr ++;
        
        if(dr > n){
            st ++;
            dr = st;
        }
    }

    cout << divk;

    return 0;
}