Cod sursa(job #2009408)

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

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

long long n, k, a, b, c, sum, v[500004], f[500005], r[500005], s[500005], j, i, nr, x, y, o, cat;

int main () {

    fin >> n >> k >> a >> b;
    
    
        nr = sum = 0;
        
    
        
        x = a;  y = b;
        
    
        
        for (i = 1; i <= n; i++)
        {
            fin >> v[i];
            
            v[i] += v[i-1];
            v[i-1] %= k;
        }
        v[n] %= 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";
}