Cod sursa(job #2407959)
Utilizator | Cazacu Mihnea mihneacaz | Data | 17 aprilie 2019 13:34:32 |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
const int NMAX=500005;
const int KMAX=100005;
using namespace std;
int sp[NMAX],f[KMAX];
ifstream cin ("divk.in");
ofstream cout ("divk.out");
int main()
{
int n,k,a,b;
cin>>n>>k>>a>>b;
for(int i=1; i<=n; ++i)
{
int x;
cin>>x;
sp[i]=(x+sp[i-1])%k;
}
long long sol=0;
for(int i=a; i<=n; ++i)
{
f[sp[i-a]]++;
if(i>b)
f[sp[i-b-1]]--;
sol+=f[sp[i]];
}
cout<<sol<<'\n';
return 0;
}