Pagini recente » Cod sursa (job #41058) | Cod sursa (job #1819907) | Cod sursa (job #2883625) | Cod sursa (job #249588) | Cod sursa (job #627991)
Cod sursa(job #627991)
# include <stdlib.h>
# include <cstdio>
using namespace std;
int s[500005], deque[500005], val[500005];
int n, k, a, b, i, j, l, front, back, ct;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d%d%d%d",&n,&k,&a,&b);
for (i = 1; i <= n; i++)
{
scanf("%d",&val[i]);
s[i] = s[i - 1] + val[i];
}
front = 1; back = 0;
for (i = a; i <= b; i++)
{
if (s[i] % k == 0)
{
ct++;
for (j = 1; j <= i; j++)
printf("%d ",val[j]);
printf("\n");
}
else deque[++back] = i;
}
for (i = 2; i + a - 1 <= n; i++)
{
while (front <= back && i + a - 1 > deque[front])
front++;
if (i + b - 1 <= n)
deque[++back] = i + b - 1;
for (l = 1; l < b; l++)
if ((s[deque[front]] - s[i - l]) % k == 0 && i - l > 0)
{
ct++;
for (j = i - l + 1; j <= deque[front]; j++)
printf("%d ",val[j]);
printf("\n");
}
}
printf("%d",ct);
return 0;
}