Pagini recente » Cod sursa (job #3350309) | Cod sursa (job #3317865) | Cod sursa (job #3311136) | Cod sursa (job #3322971) | Cod sursa (job #3348274)
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
const int N = 5e5;
const int K = 1e5;
int s[N+1],n,k;
int nr_pref_st[K],nr_pref[K];
long long nr_secv_val(int lung){
long long nr_secv=0;
nr_pref_st[0]=1;
for(int j=0;j<k;j++){
nr_pref_st[j]=0;
}
for(int i=1;i<=n;i++){
if(i>lung){
nr_pref_st[s[i-lung-1]]--;
}
nr_secv+=nr_pref[s[i]];
nr_pref[s[i]]++;
}
return nr_secv;
}
int main()
{
int a,b;
fin>>n>>k>>a>>b;
for(int i=1;i<=n;i++){
int x;
fin>>x;
s[i]=(s[i-1]+x)%k;
}
fin.close();
fout<<nr_secv_val(b)-nr_secv_val(a)+1;
return 0;
}