Cod sursa(job #1857979)
Utilizator | Data | 26 ianuarie 2017 21:52:46 | |
---|---|---|---|
Problema | Divk | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <fstream>
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int n, s[500005],k,a,b,x, v[100005];
long long int sol;
int main()
{
f >> n >> k >> a >> b;
for(int i = 1; i <= n; ++i)
{
f >> x;
s[i] = (s[i-1] + x) % k;
}
for(int i = a; i <= n; ++i)
{
v[s[i-a]]++;
if(i > b) v[s[i - b + 1]]--;
sol += v[s[i]];
}
g << sol;
}