Cod sursa(job #3227004)
Utilizator | Andrei Alexandru Rusu Andrei_Rusu | Data | 23 aprilie 2024 22:12:02 |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
const int KMAX=100000;
long long fr[KMAX+5];
vector<long long> v;
int main()
{
long long n, k, a, b, i, ans;
fin >> n >> k >> a >> b;
v.resize(n+5);
v[0]=0;
for(i=1; i<=n; ++i)
{
fin >> v[i];
v[i]+=v[i-1];
}
ans=0;
for(i=0; i<=n; ++i)
{
ans+=fr[v[i]%k];
if(i-a+1>=0)
++fr[v[i-a+1]%k];
if(i-b>=0)
--fr[v[i-b]%k];
}
fout << ans;
return 0;
}