#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int val;
struct node *next;
}Node;
Node *head=NULL;
Node* createN(int x){
Node *newnode;
newnode
=(Node
*)malloc(sizeof(Node
)); newnode->val=x;
newnode->next=NULL;
return newnode;
}
void freeL(){
Node *p;
while(head!=NULL){
p=head->next;
head=p;
}
}
void printL(){
Node *p=head;
while(p!=NULL){
p=p->next;
}
}
void makeL(int n,int a[]){
int i;
Node *p,*q;
head=createN(a[0]);
for(i=1;i<n;i++){
p=head;
q=createN(a[i]);
if(p->val>=a[i]){
q->next=head;
head=q;
} else {
while(p->next!=NULL&&p->next->val<a[i]) p=p->next;
q->next=p->next;
p->next=q;
}
}
}
int main(void){
int i,n;
int *a;
a
=(int*)malloc(sizeof(int)*n
);
for(i
=0;i
<n
;i
++) scanf("%d",&a
[i
]);
makeL(n,a);
printL();
freeL();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IG5vZGV7CiAgICBpbnQgdmFsOwogICAgc3RydWN0IG5vZGUgKm5leHQ7Cn1Ob2RlOwoKTm9kZSAqaGVhZD1OVUxMOwoKTm9kZSogY3JlYXRlTihpbnQgeCl7CiAgICBOb2RlICpuZXdub2RlOwogICAgbmV3bm9kZT0oTm9kZSopbWFsbG9jKHNpemVvZihOb2RlKSk7CiAgICBuZXdub2RlLT52YWw9eDsKICAgIG5ld25vZGUtPm5leHQ9TlVMTDsKICAgIHJldHVybiBuZXdub2RlOwp9Cgp2b2lkIGZyZWVMKCl7CiAgICBOb2RlICpwOwogICAgd2hpbGUoaGVhZCE9TlVMTCl7CiAgICAgICAgcD1oZWFkLT5uZXh0OwogICAgICAgIGZyZWUoaGVhZCk7CiAgICAgICAgaGVhZD1wOwogICAgfQp9Cgp2b2lkIHByaW50TCgpewogICAgTm9kZSAqcD1oZWFkOwogICAgd2hpbGUocCE9TlVMTCl7CiAgICAgICAgcHJpbnRmKCIlZCAiLHAtPnZhbCk7CiAgICAgICAgcD1wLT5uZXh0OwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9Cgp2b2lkIG1ha2VMKGludCBuLGludCBhW10pewogICAgaW50IGk7CiAgICBOb2RlICpwLCpxOwogICAgaGVhZD1jcmVhdGVOKGFbMF0pOwogICAgCiAgICBmb3IoaT0xO2k8bjtpKyspewogICAgICAgIHA9aGVhZDsKICAgICAgICBxPWNyZWF0ZU4oYVtpXSk7CiAgICAgICAgCiAgICAgICAgaWYocC0+dmFsPj1hW2ldKXsKICAgICAgICAgICAgcS0+bmV4dD1oZWFkOwogICAgICAgICAgICBoZWFkPXE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgd2hpbGUocC0+bmV4dCE9TlVMTCYmcC0+bmV4dC0+dmFsPGFbaV0pIHA9cC0+bmV4dDsKICAgICAgICAgICAgcS0+bmV4dD1wLT5uZXh0OwogICAgICAgICAgICBwLT5uZXh0PXE7CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbih2b2lkKXsKICAgIGludCBpLG47CiAgICBpbnQgKmE7CiAgICBzY2FuZigiJWQiLCZuKTsKICAgIGE9KGludCopbWFsbG9jKHNpemVvZihpbnQpKm4pOwogICAgCiAgICBmb3IoaT0wO2k8bjtpKyspIHNjYW5mKCIlZCIsJmFbaV0pOwogICAgCiAgICBtYWtlTChuLGEpOwogICAgcHJpbnRMKCk7CiAgICBmcmVlTCgpOwogICAgCiAgICByZXR1cm4gMDsKfQ==