#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node *head;
void addToSLL(int n)
{
struct node *cur;
cur = (struct node *)malloc(sizeof(struct node));
cur->next = 0;
cur->data = n;
if (head == 0)
{
head = cur;
return;
}
else
{
struct node *temp = head;
while (temp->next != 0)
{
temp = temp->next;
}
temp->next = cur;
return;
}
}
void showSLL()
{
struct node *cur = head;
while (cur != 0)
{
printf("%d ", cur->data);
cur = cur->next;
}
return;
}
void show_reverseSLL(int num)
{
int n = num;
while (n--)
{
struct node *cur = head;
for (int i = 0; i<n; i++)
{
cur = cur->next;
}
printf("%d ", cur->data);
}
return;
}
int main(void)
{
int num;
int data;
int i;
scanf("%d", &num);
for (i = 0; i < num; i++)
{
scanf("%d", &data);
addToSLL(data);
}
show_reverseSLL(num);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBub2RlCnsKCWludCBkYXRhOwoJc3RydWN0IG5vZGUgKm5leHQ7Cn07CnN0cnVjdCBub2RlICpoZWFkOwoKdm9pZCBhZGRUb1NMTChpbnQgbikKewoJc3RydWN0IG5vZGUgKmN1cjsKCgljdXIgPSAoc3RydWN0IG5vZGUgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBub2RlKSk7CgljdXItPm5leHQgPSAwOwoJY3VyLT5kYXRhID0gbjsKCWlmIChoZWFkID09IDApCgl7CgkJaGVhZCA9IGN1cjsKCQlyZXR1cm47Cgl9CgllbHNlCgl7CgkJc3RydWN0IG5vZGUgKnRlbXAgPSBoZWFkOwoJCXdoaWxlICh0ZW1wLT5uZXh0ICE9IDApCgkJewoJCQl0ZW1wID0gdGVtcC0+bmV4dDsKCQl9CgkJdGVtcC0+bmV4dCA9IGN1cjsKCQlyZXR1cm47Cgl9Cn0KCnZvaWQgc2hvd1NMTCgpCnsKCXN0cnVjdCBub2RlICpjdXIgPSBoZWFkOwoJd2hpbGUgKGN1ciAhPSAwKQoJewoJCXByaW50ZigiJWQgIiwgY3VyLT5kYXRhKTsKCQljdXIgPSBjdXItPm5leHQ7Cgl9CglyZXR1cm47Cn0KCnZvaWQgc2hvd19yZXZlcnNlU0xMKGludCBudW0pCnsKCWludCBuID0gbnVtOwoJd2hpbGUgKG4tLSkKCXsKCQlzdHJ1Y3Qgbm9kZSAqY3VyID0gaGVhZDsKCQlmb3IgKGludCBpID0gMDsgaTxuOyBpKyspCgkJewoJCQljdXIgPSBjdXItPm5leHQ7CgkJfQoJCXByaW50ZigiJWQgIiwgY3VyLT5kYXRhKTsKCX0KCXJldHVybjsKfQoKaW50IG1haW4odm9pZCkKewoJaW50IG51bTsKCWludCBkYXRhOwoJaW50IGk7CgoJc2NhbmYoIiVkIiwgJm51bSk7CgoJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKQoJewoJCXNjYW5mKCIlZCIsICZkYXRhKTsKCQlhZGRUb1NMTChkYXRhKTsKCX0KCglzaG93X3JldmVyc2VTTEwobnVtKTsKCXJldHVybiAwOwp9