Создать двусвязный список и продублировать в нём все единицы.
Вот сам кое - что написал , но не работает посмотрите ошибки.
#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------
struct spis { int t;
spis *pred;
spis *next;
}*ps, *pm=NULL, *pp=NULL;
main ()
{
do
{
int t;
int c;
ps=new spis;
ps->pred=NULL;
ps->next=NULL;
scanf ("%d" , &c);
pm=new spis;
pm->pred=ps;
pm->next=NULL;
ps->next=pm;
pm=ps;
ps=pp;
printf ("\n dalhe?");
}
while (getch()=='1');
while (pp!=NULL)
{
if(pp->t==1)
ps=new spis;
pp->t=1;
ps->next=pp->next;
pm->next=pp;
printf ("\n %d", pp);
getch ();
}
}
P.S.
Оформи код тегами [ CODE=cpp][ /CODE]