Cod sursa(job #1559440)
Utilizator | Data | 30 decembrie 2015 19:45:55 | |
---|---|---|---|
Problema | Divk | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.39 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
int v[500008],f[500008];
int main()
{ int a,b,k,n,j,ans=0;
in>>n>>k>>a>>b;
for(int i=1;i<=n;i++)
{in>>v[i]; v[i]=(v[i-1]+v[i]);}
for(int i=1;i<=n;i++)
{ f[v[i-a]%k]++;
if(i>=b)
f[v[i-b-1]%k]--;
ans+=f[v[i]%k];
}out<<ans;
return 0;
}