Cod sursa(job #2144702)
Utilizator | Data | 26 februarie 2018 21:24:01 | |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n,k,nr1,nr2,nr;
long long a[500005];
int s[100005];
int main()
{
int i,j,x;
fin>>n>>k>>nr1>>nr2;
for(i=1;i<=n;i++)
{fin>>x;
a[i]=a[i-1]+x;
if(i-nr1>=0)
s[a[i-nr1]%k]++;
if(i-nr2-1>=0)
s[a[i-nr2-1]%k]--;
if(i-nr1>=0)
nr+=s[a[i]%k];
}
fout<<nr;
return 0;
}