Cod sursa(job #2247398)

Utilizator raulsomesanRaul Somesan raulsomesan Data 28 septembrie 2018 16:03:13
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
#define N 500005
using namespace std;

ifstream fin("divk.in");
ofstream fout("divk.out");

int s[N],dp[100005] , v[N] ;

int main()
{
    int n , k , a , b , i ;
    long long sol = 0 ;
    fin >> n >> k >> a >> b ;
    for ( i = 1 ; i <= n ; i++ )
    {
        fin >> v[i] ;
        s[i] = (s[i-1]+ v[i]) % k ;
    }
    for ( i = 1 ; i <= n ; i++ )
    {
        if ( i >= a )
            dp[s[i-a]]++ ;
        if ( i >= b+1 )
            dp[s[i-b-1]]-- ;
        sol = sol + dp[s[i]] ;
    }
    fout << sol ;
}