Cod sursa(job #2009250)

Utilizator shantih1Alex S Hill shantih1 Data 9 august 2017 00:09:10
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>

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

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

int main () {
    
    fin >> n >> k >> a >> b;
    x = a;  y = b;
    
    for (i = 1; i <= n; i++)
    {
        fin >> v[i];
        s[i] += s[i-1]+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];
    }
    
    for (i = 1; i <= n; i++)
        cout << r[i] << " ";    cout << "\n";
    for (i = 1; i <= n; i++)
        cout << f[i] << " ";    cout << "\n";
    
    for (i = 1; i <= n; i++)
        for (j = 1; j < i; j++)
        {
            if ((s[i]-s[j-1]) % k == 0 && i-j <= y-1 && i-j >= x-1)
                nr++;
        }
    
    cout << sum << "\n";
    cout << "Corect: " << nr << "\n";
}