Cod sursa(job #2247398)
| Utilizator | 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 ;
}
