Cod sursa(job #1574968)
Utilizator | Data | 20 ianuarie 2016 23:08:46 | |
---|---|---|---|
Problema | Divk | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include<fstream>
#define NMax 500005
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int N,K,A,B,Sol;
int S[NMax],R[NMax/5];
int main()
{
fin>>N>>K>>A>>B;
for(int i=1;i<=N;++i)
{
int x; fin>>x; x%=k;
S[i]=(S[i-1]+x)%k;
if(i>=a) R[S[i-a]]++;
if(i>b) R[i-b-1]--;
Sol+=R[S[i]];
}
fout<<Sol<<"\n";
fin.close();
fout.close();
return 0;
}