Cod sursa(job #664570)
Utilizator | Data | 20 ianuarie 2012 13:35:54 | |
---|---|---|---|
Problema | Divk | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
int n,i,v[1000000],r[1000000],s[1000000],k,a,b;
long long rez;
int main()
{
in>>n>>k>>a>>b;
for(i=1;i<=n;++i)
{
in>>v[i];
}
for(i=1;i<=n;++i)
{
if(i-b>0)
r[s[i-b]]--;
if(i-a>=0)
r[s[i-a]]++;
s[i]=(s[i-1]+v[i])%k;
rez=rez+r[s[i]];
if(s[i]==0 && i<=b && i>=a)
rez++;
// out<<s[i]<<" "<<r[s[i]]<<"\n";
}
out<<rez;
return 0;
}