Cod sursa(job #3203341)
Utilizator | Razvan Cazacu Cazacu2006Razvan | Data | 13 februarie 2024 15:39:57 |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n,k,a,b,s[500001],fr[100001],nr;
int main()
{
fin>>n>>k>>a>>b;
for(int i=1;i<=n;i++)
{
fin>>s[i];
s[i]=(s[i]+s[i-1])%k;
}
for(int i=1;i<=n;i++)
{
if(i>=a)
fr[s[i-a]]++;
nr+=fr[s[i]];
if(i>=b)
fr[s[i-b]]--;
}
fout<<nr;
return 0;
}