Cod sursa(job #3202677)

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

using namespace std;

int vec[500001];
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;
    }
    
    st = 1;
    dr = 1 + b - a;

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

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

    cout << divk;

    return 0;
}