Mam do napisania program, który w kolejnych N iteracjach wygeneruje K elementowy wiersz (zawierający 1 lub 0) na podstawie wiersza z poprzedniej iteracji.
Chodzi o to zeby kazdy element danego wiersza zalezal od trzech elementow poprzedniego wiersza.
Np. jeśli 1., 2. i 3. element wiersza poprzedniego po dodaniu dadza 2 lub 3 to 1. element otrzymanego wiersza da "1". W innym wypadku da "0".

Mam już napisany jeden kod:

 
#include <iostream>
#include <cmath>
#include<iomanip>
using namespace std;
int main()
{ 
const int NMAX=100;
int a, b, n,k , suma=0;
int ak[NMAX], akn[NMAX]; 

cout<<"Podaj ilu elementowy ma byc wektor (0 lub 1), mniejsze niz "<<NMAX<<"):"; cin>>a;

for (n=0; n<a; ++n)
{
cout<<"podaj "<<n+1<<" liczbe: ";cin>>ak[n];
} 
for (n=0; n<a; ++n)
{
cout<<ak[n]<<" ";
}
cout<<endl;


for (k=0; k<5; ++k)
{ 

for (n=0; n<a; ++n)
{
if(n!=0 && n!=a-1) 
suma=ak[n]+ak[n-1]+ak[n+1];
if(n==0)
suma=ak[0]+ak[1]+ak[a-1];
if(n==a-1)
suma=ak[0]+ak[a-2]+ak[a-1];
if(suma>1)
akn[n]=1;
else
akn[n]=0;
}
for (n=0; n<a; ++n)
{
cout<<akn[n]<<" ";
ak[n]=akn[n]; 
}
cout<<endl;



}


system("pause");
return 0; 
}

Ale ten kod wyznacza element nowego wektora na podstawie 3 elementow

Celem jest, żeby element nowego wektora wyznaczany byl na podstawie 'dowolnej nieparzystej liczby elementow'.
Myślałem, kombinowałem i nie wiem jak to napisać.
Może program ma sie pytac ile elementow uwzglednic przy tworzeniu nowego wektora??