Cod sursa(job #3202719)

Utilizator marelucaMare Luca Ghita mareluca Data 12 februarie 2024 11:04:23
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;

int vec[500001], fv[500001];
long long 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;
    }
    
    for(int i = 1; i <= n; i ++){
        if(i >= a){
            fv[vec[i - a]] ++;
        }
        
        divk += fv[vec[i]];
        
        if(i >= b){
            fv[vec[i - b]] --;
        }
    }
    
    cout << divk;

    return 0;
}