#include <iostream>
#include <algorithm>
using namespace std;
class linklist {
private:
class linknode {
public:
int data;
linknode *next;
linknode():next(NULL) {}
linknode(int d):data(d),next(NULL) {};
};
linknode *head;
int num;
public:
linklist() {
head=new linknode();
num=0;
}
void add(int data) {
linknode *temp=new linknode(data);
temp->next=head->next;
head->next=temp;
num++;
}
void delet() {
linklist l=*this;
for(linknode *i=l.head->next;i->next!=NULL;i=i->next)
for(linknode *j=i->next;j!=NULL;j=j->next)
if(i->data==j->data) {
linknode *p=i;
while(p->next!=j) {
p=p->next;
}
p->next=j->next;
num--;
}
}
void display() {
cout<<num<<endl;
linknode *p=head->next;
while(p->next) {
cout<<p->data<<' ';
p=p->next;
}
cout<<p->data<<endl;
}
};
int main() {
int n;
cin>>n;
linklist l1, l2;
while(n--) {
int x;
cin>>x;
l1.add(x);
}
l1.display();
l1.delet();
l1.display();
return 0;
}
#include <algorithm>
using namespace std;
class linklist {
private:
class linknode {
public:
int data;
linknode *next;
linknode():next(NULL) {}
linknode(int d):data(d),next(NULL) {};
};
linknode *head;
int num;
public:
linklist() {
head=new linknode();
num=0;
}
void add(int data) {
linknode *temp=new linknode(data);
temp->next=head->next;
head->next=temp;
num++;
}
void delet() {
linklist l=*this;
for(linknode *i=l.head->next;i->next!=NULL;i=i->next)
for(linknode *j=i->next;j!=NULL;j=j->next)
if(i->data==j->data) {
linknode *p=i;
while(p->next!=j) {
p=p->next;
}
p->next=j->next;
num--;
}
}
void display() {
cout<<num<<endl;
linknode *p=head->next;
while(p->next) {
cout<<p->data<<' ';
p=p->next;
}
cout<<p->data<<endl;
}
};
int main() {
int n;
cin>>n;
linklist l1, l2;
while(n--) {
int x;
cin>>x;
l1.add(x);
}
l1.display();
l1.delet();
l1.display();
return 0;
}