Cod sursa(job #615335)
| Utilizator | Data | 9 octombrie 2011 14:12:06 | |
|---|---|---|---|
| Problema | Divk | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include<stdio.h>
#include<fstream>
using namespace std;
int sume[500010],nr;
long long sol;
int A,B,K,n;
int main()
{
ifstream fin("divk.in");
ofstream fout("divk.out");
fin>>n>>K>>A>>B;
for(int i=1;i<=n;i++)
{
fin>>nr;
sume[i]=sume[i-1]+nr;
if(i-B>=0)
{
for(int j=i-B;j<=i-A;j++)
{
if((sume[i]-sume[j])%K==0) sol++;
}
}
else
{
for(int j=1;j<=i-A;j++)
if((sume[i]-sume[j])%K==0) sol++;
}
}
fout<<sol;
}