Cod sursa(job #1015459)

Utilizator diana97Diana Ghinea diana97 Data 24 octombrie 2013 18:07:25
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, k, a, b;
int suma[500001], aparitii[500001];

void citeste ()
{
    f>>n>>k>>a>>b;
    for (int i=1; i<=n; i++)
    {
        f>>suma[i]; suma[i]=(suma[i]+suma[i-1])%k;
    }
}

void rezolva ()
{
    int rezultat=0;
    for (int i=a; i<=n; i++)
    {
        aparitii[suma[i-a]]++;
        if (i>b) aparitii[suma[i-b-1]]--;
        rezultat+=aparitii[suma[i]];
    }
    g<<rezultat;
}

int main ()
{
    citeste ();
    rezolva ();
}