Cod sursa(job #1069189)
Utilizator | Data | 29 decembrie 2013 16:08:30 | |
---|---|---|---|
Problema | Divk | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <iostream>
#include <fstream>
using namespace std;
int s[500010],r[100010];
int main()
{
ifstream fin("divk.in");
ofstream fout("divk.out");
int i,n,a,b,k,rez=0;
fin>>n>>k>>a>>b;
for(i=1;i<=n;i++)
{
fin>>s[i];
s[i]+=s[i-1];
s[i]=s[i]%k;
}
for(i=a;i<=n;i++)
{
r[s[i-a+1]]++;
if(i>b)
r[s[i-b]]--;
rez+=r[s[i]];
}
fout<<rez;
return 0;
}