//
// Created by samsu dhuha on 28/02/19.
//
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int val;
struct node* next;
} node_t;
typedef struct linklist{
node_t* head;
node_t* tail;
}linklist_t;
void pop_back(linklist_t* lk) {
if (lk->tail == NULL)return;
if (lk->tail == lk->head) {
lk->head = NULL;
lk->tail = NULL;
return;
} else {
node_t *tmp = lk->head;
while (tmp->next != lk->tail) {
tmp = tmp->next;
}
lk->tail = tmp;
tmp->next = NULL;
}
return;
}
void push_back(int value, linklist_t* lk, int *node) {
node_t
*box
= (node_t
*) malloc(sizeof(node_t
)); box->val = value;
box->next = NULL;
while ((*node != 0) && (box->val > lk->tail->val)) {
pop_back(lk);
*node -= 1;
}
*node += 1;
if (lk->head == NULL) {
lk->tail = box;
lk->head = box;
} else {
lk->tail->next = box;
lk->tail = box;
}
return;
}
void printALL(linklist_t* lk) {
node_t *tmp = lk->head;
while (tmp != NULL) {
if(tmp->next != NULL) {
}
else{
}
tmp = tmp->next;
}
return;
}
int main(){
linklist_t
*posisi
= (linklist_t
*) malloc(sizeof(linklist_t
)); posisi->head = NULL;
posisi->tail = NULL;
int testcase, banyak_batu, berat_batu;
for (int i = 0; i < testcase; i++) {
scanf("%d", &banyak_batu
); int awalan = 0;
posisi->head = NULL;
posisi->tail = NULL;
for (int j = 0; j < banyak_batu; j++) {
scanf("%d", &berat_batu
); push_back(berat_batu,posisi, &awalan);
}
printALL(posisi);
}
}
Ly8KLy8gQ3JlYXRlZCBieSBzYW1zdSBkaHVoYSBvbiAyOC8wMi8xOS4KLy8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp0eXBlZGVmIHN0cnVjdCBub2RlewogICAgaW50IHZhbDsKICAgIHN0cnVjdCBub2RlKiBuZXh0Owp9IG5vZGVfdDsKCnR5cGVkZWYgc3RydWN0IGxpbmtsaXN0ewogICAgbm9kZV90KiBoZWFkOwogICAgbm9kZV90KiB0YWlsOwp9bGlua2xpc3RfdDsKCnZvaWQgcG9wX2JhY2sobGlua2xpc3RfdCogbGspIHsKICAgIGlmIChsay0+dGFpbCA9PSBOVUxMKXJldHVybjsKICAgIGlmIChsay0+dGFpbCA9PSBsay0+aGVhZCkgewogICAgICAgIGZyZWUobGstPnRhaWwpOwogICAgICAgIGxrLT5oZWFkID0gTlVMTDsKICAgICAgICBsay0+dGFpbCA9IE5VTEw7CiAgICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgICBub2RlX3QgKnRtcCA9IGxrLT5oZWFkOwoKICAgICAgICB3aGlsZSAodG1wLT5uZXh0ICE9IGxrLT50YWlsKSB7CiAgICAgICAgICAgIHRtcCA9IHRtcC0+bmV4dDsKICAgICAgICB9CiAgICAgICAgbGstPnRhaWwgPSB0bXA7CiAgICAgICAgZnJlZSh0bXAtPm5leHQpOwogICAgICAgIHRtcC0+bmV4dCA9IE5VTEw7CiAgICB9CiAgICByZXR1cm47Cn0KCnZvaWQgcHVzaF9iYWNrKGludCB2YWx1ZSwgbGlua2xpc3RfdCogbGssIGludCAqbm9kZSkgewogICAgbm9kZV90ICpib3ggPSAobm9kZV90ICopIG1hbGxvYyhzaXplb2Yobm9kZV90KSk7CiAgICBib3gtPnZhbCA9IHZhbHVlOwogICAgYm94LT5uZXh0ID0gTlVMTDsKCiAgICB3aGlsZSAoKCpub2RlICE9IDApICYmIChib3gtPnZhbCA+IGxrLT50YWlsLT52YWwpKSB7CiAgICAgICAgcG9wX2JhY2sobGspOwogICAgICAgICpub2RlIC09IDE7CiAgICB9CgogICAgKm5vZGUgKz0gMTsKCiAgICBpZiAobGstPmhlYWQgPT0gTlVMTCkgewogICAgICAgIGxrLT50YWlsID0gYm94OwogICAgICAgIGxrLT5oZWFkID0gYm94OwogICAgfSBlbHNlIHsKICAgICAgICBsay0+dGFpbC0+bmV4dCA9IGJveDsKICAgICAgICBsay0+dGFpbCA9IGJveDsKICAgIH0KICAgIHJldHVybjsKfQoKdm9pZCBwcmludEFMTChsaW5rbGlzdF90KiBsaykgewogICAgbm9kZV90ICp0bXAgPSBsay0+aGVhZDsKICAgIHdoaWxlICh0bXAgIT0gTlVMTCkgewogICAgICAgIGlmKHRtcC0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgdG1wLT52YWwpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBwcmludGYoIiVkIiwgdG1wLT52YWwpOwogICAgICAgIH0KICAgICAgICB0bXAgPSB0bXAtPm5leHQ7CiAgICB9CiAgICBwcmludGYoIlxuIik7CiAgICByZXR1cm47Cn0KCmludCBtYWluKCl7CiAgICBsaW5rbGlzdF90ICpwb3Npc2kgPSAobGlua2xpc3RfdCAqKSBtYWxsb2Moc2l6ZW9mKGxpbmtsaXN0X3QpKTsKICAgIHBvc2lzaS0+aGVhZCA9IE5VTEw7CiAgICBwb3Npc2ktPnRhaWwgPSBOVUxMOwoKICAgIGludCB0ZXN0Y2FzZSwgYmFueWFrX2JhdHUsIGJlcmF0X2JhdHU7CiAgICBzY2FuZigiJWQiLCAmdGVzdGNhc2UpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Y2FzZTsgaSsrKSB7CiAgICAgICAgc2NhbmYoIiVkIiwgJmJhbnlha19iYXR1KTsKICAgICAgICBpbnQgYXdhbGFuID0gMDsKICAgICAgICBwb3Npc2ktPmhlYWQgPSBOVUxMOwogICAgICAgIHBvc2lzaS0+dGFpbCA9IE5VTEw7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBiYW55YWtfYmF0dTsgaisrKSB7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsICZiZXJhdF9iYXR1KTsKICAgICAgICAgICAgcHVzaF9iYWNrKGJlcmF0X2JhdHUscG9zaXNpLCAmYXdhbGFuKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRBTEwocG9zaXNpKTsKICAgIH0KfQoK