Pagini recente » Cod sursa (job #3303295) | Cod sursa (job #2185320) | Cod sursa (job #729875) | Cod sursa (job #3355711) | Cod sursa (job #3303490)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int nmax = 5 * 1e5, kmax = 1e5;
int n, k, lf, rg;
int64_t secv, a[nmax + 2];
int freq[kmax + 2];
int64_t solve(int length){
for(int i = 0; i <= k; i++)
freq[i] = 0;
int64_t ways = 0;
for(int i = 1; i <= n; i++){
ways += freq[a[i] % k];
if(i - length + 1 >= length)
freq[a[i - length + 1] % k]--;
freq[a[i] % k]++;
}
return ways;
}
int main(){
in>>n>>k>>lf>>rg;
for(int i = 1; i <= n; i++)
in>>a[i], a[i] %= k, a[i] += a[i - 1];
secv = solve(rg) - solve(lf - 1);
out<<secv<<"\n";
return 0;
}