#include<iostream>
using namespace std;
struct node
{
int val;
node *next;
};
void traverse(node *head)
{
node *temp=head;
while(temp)
{
cout<<temp->val<<" ";
temp=temp->next;
}
}
int main()
{
node *head=NULL;
for(int i=0; i<5; i++)
{
node *ptr=new node;
cin>>ptr->val;
ptr->next=NULL;
ptr->next=head;
head=ptr;
}
traverse(head);
cout<<endl;
node *prev=NULL;
node *cur=head;
node *n=head->next;
while(cur)
{
n=cur->next;
cur->next=prev;
prev=cur;
cur=n;
}
head=prev;
traverse(head);
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBub2RlCnsKICAgIGludCB2YWw7CiAgICBub2RlICpuZXh0Owp9Owp2b2lkIHRyYXZlcnNlKG5vZGUgKmhlYWQpCnsKICAgIG5vZGUgKnRlbXA9aGVhZDsKICAgIHdoaWxlKHRlbXApCiAgICB7CiAgICAgICAgY291dDw8dGVtcC0+dmFsPDwiICI7CiAgICAgICAgdGVtcD10ZW1wLT5uZXh0OwogICAgfQp9CmludCBtYWluKCkKewogICAgbm9kZSAqaGVhZD1OVUxMOwogICAgZm9yKGludCBpPTA7IGk8NTsgaSsrKQogICAgewogICAgICAgIG5vZGUgKnB0cj1uZXcgbm9kZTsKICAgICAgICBjaW4+PnB0ci0+dmFsOwogICAgICAgIHB0ci0+bmV4dD1OVUxMOwogICAgICAgIHB0ci0+bmV4dD1oZWFkOwogICAgICAgIGhlYWQ9cHRyOwogICAgfQogICAgdHJhdmVyc2UoaGVhZCk7CiAgICBjb3V0PDxlbmRsOwogICAgbm9kZSAqcHJldj1OVUxMOwogICAgbm9kZSAqY3VyPWhlYWQ7CiAgICBub2RlICpuPWhlYWQtPm5leHQ7CiAgICB3aGlsZShjdXIpCiAgICB7CiAgICAgICAgbj1jdXItPm5leHQ7CiAgICAgICAgY3VyLT5uZXh0PXByZXY7CiAgICAgICAgcHJldj1jdXI7CiAgICAgICAgY3VyPW47CiAgICB9CiAgICBoZWFkPXByZXY7CiAgICB0cmF2ZXJzZShoZWFkKTsKfQ==