//задачата е изтриване на елементи кратни на числото к

//проблема е че резултата излиза толкова пъти колкото са елементите и ако всички елементи са кратни излиза грешка

#include<iostream>
using namespace std;
struct elem

int key;
elem *next;
} *l=NULL, *r=NULL;
void push_l(int n)
{
elem *p=l;
l=new elem;
l->key=n;
l->next=p;
if(r==NULL)
r=l;
}
void push_r(int n)
{
elem *p=r;
r=new elem;
r->next=NULL;
r->key=n;
if(p)
p->next=r;
else
l=r;
}
int pop_l(int &n)
{
if(l)
{
elem *p=l;
n=l->key;
l=l->next;
delete p;
if (l==NULL)
r=NULL;
return 1;
}
else
return 0;
}
void del(int &br)
{
int k,a;
cout<<"Vyvedete chislo za proverka:  "; 
cin>>k;
for(int i=0;i<br;i++)
{
pop_l(a);
if (a%k) 
push_r(a);
}
}
void print(int &br)
{
int a;
for(int i=0;i<br;i++)
{
pop_l(a);
cout<<a<<"\t";
push_r(a);
}
}
void input(int &br)
{
int a;
cout<<"vyvedi chisla ";cin>>a;
while (a!=0){
push_l(a);
br++;
cin>>a;
}
}
int  main()
{
int br(0);
input(br);
print(br); cout<<endl;
del(br);
print(br);
system("pause");
}