Pagini recente » Cod sursa (job #1209849) | Cod sursa (job #56495) | Cod sursa (job #29059) | Cod sursa (job #1126085) | Cod sursa (job #1142048)
#include <fstream>
#include <fstream>
#include <vector>
#define NMax 100001
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
vector <int> v[NMax];
int n, k, a, b, i, j, st, dr, s, el, nr;
long long numar(int b){
int st;
long long nr=0;
for (int i=0; i<=k-1; i++) {
st=0;
for (dr=0; dr<v[i].size(); dr++) {
while(st<dr && v[i][dr]-v[i][st]>b)
st++;
nr+=dr-st;
}
}
for(i=0;i<v[0].size();i++)
if(v[0][i]<=b)
nr++;
return nr;
}
int main()
{
f>>n>>k>>a>>b;
for (i=1; i<=n; i++) {
f>>el;
s=(s+el)%k;
v[s].push_back(i);
}
long long nr1=numar(b);
long long nr2=numar(a-1);
g<<nr1-nr2;
return 0;
}