Cod sursa(job #2009411)

Utilizator shantih1Alex S Hill shantih1 Data 9 august 2017 16:56:54
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>

using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");

int n, k, a, b, c, sum, v[500004], f[100005], r[500005], j, i, nr;

int main () {

    fin >> n >> k >> a >> b;
    
    nr = sum = 0;
    for (i = 1; i <= n; i++)
    {
        fin >> v[i];
        
        v[i] += v[i-1];
        v[i] %= k;
    }
    
    c = b-a+1;
    for (i = 1; i <= n; i++)
    {
        f[v[i]]++;
        if (i > c) f[v[i-c]]--;
        
        if (i+a <= n)   r[i+a] = f[v[i+a]];
            
        if (v[i] == 0 && i <= b && i >= a)
            r[i]++;
            
        sum += r[i];
    }
    
    fout << sum << "\n";
}