Cod sursa(job #2633958)
Utilizator | Ticu Bogdan Valeriu BogdanTicu | Data | 9 iulie 2020 13:18:33 |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
long long v[500001],sp[500001],answer=0,k;
int fv[500001];
int main()
{
int n,a,b;
in>>n>>k>>a>>b;
for(int i=1;i<=n;i++)
{
//citim vectorul si facem sume partiale in vector
in>>v[i];
sp[i]=sp[i-1]+v[i];
sp[i]%=k;
}
for(int i=1;i<=n;i++)
{
if(i>=a) fv[sp[i-a]]++;
if(i>b) fv[sp[i-b-1]]--;
answer+=fv[sp[i]];
}
out<<answer;
return 0;
}