Pagini recente » Cod sursa (job #163345) | Cod sursa (job #937778) | Cod sursa (job #1397243) | Cod sursa (job #93422) | Cod sursa (job #3315345)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("divk.in");
ofstream cout("divk.out");
struct pereche{
int a,b;
};
pereche s[500000];
bool cmp(pereche a, pereche b) {
return a.a < b.a || (a.a == b.a && a.b < b.b);
}
int main()
{
int n, a, b, k, i, x, nr, sec = 0, j, indice, ci;
cin >> n >> k >> a >> b;
for(i = 1;i <= n;i++)
{
cin >> x;
s[i].a += s[i - 1].a + x;
s[i].a %= k;
s[i].b = i;
}
sort(s,s + n + 2,cmp);
for(i = 1;i <= n;i++)
{
nr = s[i].a;
j = s[i + 1].b;
indice = s[i].b;
ci = i;
i++;
while(s[i].a == nr)
{
if(j - indice >= a && j - indice <= b)
{
sec++;
printf("%d %d\n",j,indice);
}
i++;
j = s[i].b;
}
i = ci;
}
cout << sec;
return 0;
}