Cod sursa(job #1074139)
Utilizator | Data | 7 ianuarie 2014 11:15:40 | |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
using namespace std;
int r[500073];
int numar[100073];
int main()
{
int x,n,k,a,b,solutii=0;
ifstream in("divk.in");
ofstream out("divk.out");
in>>n>>k>>a>>b;
for (int i=1;i<=n;i++)
{
in>>x;
r[i]=(r[i-1]+x)%k;
if (i>b)
numar[r[i-b-1]]--;
if(i>=a)
numar[r[i-a]]++;
solutii+=numar[r[i]];
}
out<<solutii;
return 0;
}