Выяснил, уточняю: Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна 1).
Решать пытался, вот код:
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
#define N 20
void change(int, int, int *);
void print_arr(int *);
int main()
{
int k;
cout<<"Enter k: ";
cin>>k;
cout<<endl;
int arr[N+1];//массив
//заполняем массив числами и нулём
FILE *f = fopen("array.txt", "r");
if(f)
for(int i = 0;i < N;i++)
fscanf(f, "%d", &arr);
else {
cout<<"Error!";
_getch();
return 1;
}
arr[N] = 0;
//вывод массива
cout<<"Array: "<<endl;
print_arr(arr);
cout<<"Working..."<<endl;
//нахождение последовательностей
int x = 0, y = 0;
for(int i = 1;i < N;i++)
{
if(arr[i-1] == arr)x++;
else if(x >= k) {
change(x, y, arr);
print_arr(arr);
x = 0;
i-=2;
y = i;}
else {
y = i;
x = 0;
}
}
//вывод обработанного массива
cout<<"Result: "<<endl;
print_arr(arr);
//конец
_getch();
return 0;
}
void change(int value, int start, int *arr)
{
for(int i = start;i < N; i++)
arr = arr[i+1];
value--;
if(value > 0)change(value, start, arr);
}
void print_arr(int *arr)
{
for(int i = 0;i < N;i++)
cout<<arr<<" ";
cout<<endl;
}