Pagini recente » Cod sursa (job #1481961) | Cod sursa (job #3334658) | Cod sursa (job #1481381) | Cod sursa (job #3342656) | Cod sursa (job #3303491)
#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;
freq[0] = 1;
int64_t ways = 0;
for(int i = 1; i <= n; i++){
if(i - length - 1 >= 0)
freq[a[i - length - 1] % k]--;
ways += freq[a[i] % 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;
}