Pagini recente » Cod sursa (job #694156) | Cod sursa (job #1941079) | Cod sursa (job #2920068) | Cod sursa (job #374343) | Cod sursa (job #1053887)
#include <iostream>
#include <fstream>
#define Nmax 100001
using namespace std;
int N,K,A,B;
int cnt[Nmax],vec[Nmax];
void read_data()
{
ifstream f("divk.in");
f>>N>>K>>A>>B;
for(int i=1;i<=N;++i)
f>>vec[i];
f.close();
}
int query(int length)
{
for(int i=0;i<K;++i)
cnt[i] = 0;
cnt[0] = 1;
int sol = 0;
for(int i=1;i<=N;++i)
{
if(cnt[vec[i]] > 0)
sol += cnt[vec[i]];
++cnt[vec[i]];
if(i-length >= 0)
--cnt[vec[i-length]];
}
return sol;
}
int main()
{
read_data();
ofstream g("divk.out");
for(int i=1;i<=N;++i)
vec[i] = (vec[i] + vec[i-1])%K;
g<<query(B) - query(A-1);
g.close();
return 0;
}