Cod sursa(job #2359510)

Utilizator petru.theodorCristea Petru Theodor petru.theodor Data 28 februarie 2019 21:35:51
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;

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

const int NMAX=500005;
const int KMAX=100005;

long long A, B, K, N, solutie;
long long sums[NMAX];
int remainders[KMAX];

int main()
{
    fin>>N>>K>>A>>B;
    for (int i=1, x; i<=N; i++)
        {
            fin>>x;
            sums[i]+=sums[i-1]+x;
            if (i-B-1>=0)
                remainders[sums[i - B - 1] % K]--;
            if (i - A >= 0)
                remainders[sums[i - A] % K]++;
            solutie+=remainders[sums[i]%K];
        }
     fout<<solutie;
}