Pagini recente » Cod sursa (job #3311828) | Cod sursa (job #3343411) | Cod sursa (job #3348884) | Cod sursa (job #3309604) | Cod sursa (job #3348269)
#include <fstream>
using namespace std;
const int N = 5e5;
const int K = 1e5;
int s[N+1], n, k;
int nr_pref[K];
long long nr_secv_valide(int lung)
{
///nr. secventelor valide de lungime <= lung
long long nr_secv = 0;
nr_pref[0] = 1;
for (int j = 1; j < k; j++)
{
nr_pref[j] = 0;
}
for (int i = 1; i <= n; i++)
{
if (i >= lung)
{
nr_pref[s[i-lung]]--;
}
nr_secv += nr_pref[s[i]];
}
return nr_secv;
}
int main()
{
ifstream in("divk.in");
ofstream out("divk.out");
int a, b;
in >> n >> k >> a >> b;
for (int i = 1; i <= n; i++)
{
int x_i;
in >> x_i;
s[i] = (s[i-1] + x_i) % k;
}
in.close();
out << nr_secv_valide(b) - nr_secv_valide(a - 1) << "\n";
out.close();
return 0;
}