Cod sursa(job #1588347)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 2 februarie 2016 23:17:53
Problema Divk Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <cstdio>
#include <queue>
using namespace std;

int v[500005];
int ap[500005];

queue < int > Q;

int main()
{

    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);

    int n, i, j, t, d, a, b, k;
    long long s  = 0;

    scanf("%d%d%d%d",&n,&k,&a,&b);

    for( i = 1; i <= n; ++i ){
        scanf("%d",&t);
        v[i] = ( v[i-1] + t ) % k;
        if( i > b ) ap[v[i-b]]--;
        if( i >= a ) s += ap[v[i]];
        ap[v[i]]++;
    }


    printf("%lld",s);

    return 0;
}