Cod sursa(job #1011259)
Utilizator | Data | 16 octombrie 2013 17:19:32 | |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.41 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int i,n,k,a,b,el,ap[100005],s[500005],sol;
int main()
{ f>>n>>k>>a>>b;
for(i=1;i<=n;i++)
{ f>>el;
s[i]=(s[i-1]+el)%k;
if (!s[i] && i>=a && i<=b) sol++;
if (i-b-1>0) ap[s[i-b-1]]--;
if (i>a) ap[s[i-a]]++;
sol+=ap[s[i]];
}
g<<sol;
return 0;
}