Cod sursa(job #1852415)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 20 ianuarie 2017 19:40:15
Problema Divk Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <unordered_map>
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int maxn = 500005;
unordered_map <int, int> fr;
long long v[maxn];

int main()
{
    int n, k, a, b;
    in >> n >> k >> a >> b;
    for(int i = 1; i <= n; i++)
    {
        in >> v[i];
        v[i] = (v[i - 1] + v[i]) % k;
    }
    long long T = 0;
    for(int i = 1; i <= n; i++)
    {
        if(i >= a)
            fr[v[i - a]]++;
        if(i > b)
            fr[v[i - b - 1]]--;
        T = T + fr[v[i]];
    }
    out << T << "\n";
    return 0;
}