Cod sursa(job #1266463)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 18 noiembrie 2014 19:30:07
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");

const int nmax = 500006;
int v[nmax], s[nmax], n, k, a, b;
long long m[nmax], rasp;
 
int main()
{
	int player_unu=0;

    in>>n>>k>>a>>b;
    for(int i = 1; i<=n; i++)
        in>>v[i];

    for(int i = 1; i<=n; i++)
    {
        s[i] = s[i - 1] + v[i];
        s[i] = s[i] % k;
    }

    for(int i = 1; i<=n; i++)
    {
        if(i - a>=0)
            m[s[i - a]]++;

        if(i - b>0)
            m[s[i - b - 1]]--;

        rasp += m[s[i]];
    }

    out<<rasp<<'\n';
    return 0;
}