Cod sursa(job #2650566)

Utilizator redstonegamer22Andrei Ion redstonegamer22 Data 19 septembrie 2020 13:21:27
Problema Divk Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("divk.in");
ofstream out("divk.out");

int sp[500005];
int f[100005];

int main()
{
    int n, k, a, b; in >> n >> k >> a >> b;

    for(int i = 0; i < n; i++)
        in >> sp[i];

    sp[0] %= k;
    for(int i = 1; i < n; i++)
        sp[i] = (sp[i-1] + sp[i]) % k;

    /*for(int i = 0; i < n; i++)
        cout << sp[i] << " " ;
    cout << endl;*/

    long long nr_secv = 0;
    for(int i = 0; i < n; i++)
    {
        if(i - a + 1 >= 0) f[sp[i - a + 1]]++;
        if(i - b >= 0) f[sp[i - b]]--;

        /*for(int j = 0; j < k; j++)
            cout << f[j] << " ";
        cout << endl;

        cout << sp[i] << endl;*/

        nr_secv += f[(k + sp[i])%k];
    }

    out << nr_secv;
}