Pagini recente » Cod sursa (job #603225) | Cod sursa (job #1982671) | Cod sursa (job #1333114) | Cod sursa (job #2680138) | Cod sursa (job #1143792)
#include <fstream>
#include <vector>
using namespace std;
ifstream is("divk.in");
ofstream os("divk.out");
int n, k, lmin, lmax;
int a, s;
long long answ;
vector<int> r[100000];
int main()
{
is >> n >> k >> lmin >> lmax;
for ( int i = 0; i < k; ++i )
r[i].push_back(0);
r[0][0] = 1;
r[0].push_back(0);
for ( int i = 1; i <= n; ++i )
{
is >> a;
s = ( s + a ) % k;
++r[s][0];
r[s].push_back(i);
for ( int j = 1; j <= r[s][0]; ++j )
if ( i - r[s][j] >= lmin && i - r[s][j] <= lmax )
++answ;
}
os << answ;
is.close();
os.close();
return 0;
}