Cod sursa(job #3313671)
| Utilizator | Data | 5 octombrie 2025 20:01:53 | |
|---|---|---|---|
| Problema | Divk | Scor | 10 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int s[500005];
int fr[500005];
int main()
{
int n,k,a,b;
fin >> n >> k >> a >> b;
for (int i=1;i<=n;++i){
fin >> s[i];
s[i] += s[i-1];
s[i] = s[i]%k;
}
int ans = 0;
for (int i=1;i<=n;++i){
int j1 = i-a+1;
int j2 = i-b-1;
//cout << j2 << ' ' << j1 << " | ";
if (j1>0) fr[s[j1]]++;
if (j2>0) fr[s[j2]]--;
ans += fr[s[i]];
//cout << fr[s[i]] << '\n';
}
fout << ans;
return 0;
}
