Cod sursa(job #1565706)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 11 ianuarie 2016 11:00:08
Problema Divk Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

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

int N, K, A, B;
int x[500001];
int S[500001];
int ceva[100001];

void Input();

int main()
{
    Input();
    int b = 0;
    int a = b-B;
    long long sol = 0;
    for (int i = A; i <= N; ++i, ++a, ++b)
    {
        ceva[S[b]]++;
        if (a >= 0)
            ceva[S[a]]--;
        sol += ceva[S[i]];
    }
    os << sol;
    is.close();
    os.close();
}

void Input()
{
    is >> N >> K >> A >> B;
    for (int i = 1; i <= N; ++i)
    {
        is >> x[i];
        S[i] += S[i-1] + x[i];
        if (S[i] >= K)
            S[i] %= K;
    }
}