#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct celula
{
long long int dado;
struct celula *prox;
} celula;
celula *inicializa()
{
celula *novo;
novo
= malloc(sizeof(celula
)); novo->prox = NULL;
return novo;
}
void empilha(celula *p, long long int x)
{
celula *novo;
novo
= malloc(sizeof(celula
)); novo->dado = x;
novo->prox = p->prox;
p->prox = novo;
}
long long int desempilha(celula *p, int *y)
{
celula *lixo = p->prox;
p->prox = lixo->prox;
*y = lixo->dado;
return 1;
}
long long int imprimeTopo(celula *p, int *y){
celula *topo = p->prox;
*y = topo->dado;
return 1;
}
int main()
{
int i, j = 0, n = 0, d;
long long int dado, aux;
char operacao[20];
celula *presentes = inicializa();
celula *menor = inicializa();
for (i = 0; i < n; i++)
{
if (strcmp(operacao
, "PUSH") == 0) {
if(presentes->prox == NULL || menor->prox == NULL)
{
aux = dado;
empilha(menor, aux);
}
else
{
if(aux <= dado)
{
empilha(menor, aux);
}
else
{
empilha(menor, dado);
aux = dado;
}
}
empilha(presentes, dado);
}
else if (strcmp(operacao
, "POP") == 0) {
if (presentes->prox == NULL || menor->prox == NULL){
}
else
{
desempilha(presentes, &d);
desempilha(menor, &d);
}
}
else if (strcmp(operacao
, "MIN") == 0) {
if(presentes->prox == NULL || menor->prox == NULL)
{
}
else
{
imprimeTopo(menor, &d);
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgY2VsdWxhCnsKICAgIGxvbmcgbG9uZyBpbnQgZGFkbzsKICAgIHN0cnVjdCBjZWx1bGEgKnByb3g7Cn0gY2VsdWxhOwpjZWx1bGEgKmluaWNpYWxpemEoKQp7CiAgICBjZWx1bGEgKm5vdm87CiAgICBub3ZvID0gbWFsbG9jKHNpemVvZihjZWx1bGEpKTsKICAgIG5vdm8tPnByb3ggPSBOVUxMOwogICAgcmV0dXJuIG5vdm87Cn0Kdm9pZCBlbXBpbGhhKGNlbHVsYSAqcCwgbG9uZyBsb25nIGludCB4KQp7CiAgICBjZWx1bGEgKm5vdm87CiAgICBub3ZvID0gbWFsbG9jKHNpemVvZihjZWx1bGEpKTsKICAgIG5vdm8tPmRhZG8gPSB4OwogICAgbm92by0+cHJveCA9IHAtPnByb3g7CiAgICBwLT5wcm94ID0gbm92bzsKfQpsb25nIGxvbmcgaW50IGRlc2VtcGlsaGEoY2VsdWxhICpwLCBpbnQgKnkpCnsKICAgIGNlbHVsYSAqbGl4byA9IHAtPnByb3g7CiAgICBwLT5wcm94ID0gbGl4by0+cHJveDsKICAgICp5ID0gbGl4by0+ZGFkbzsKICAgIGZyZWUobGl4byk7CiAgICByZXR1cm4gMTsKfQoKbG9uZyBsb25nIGludCBpbXByaW1lVG9wbyhjZWx1bGEgKnAsIGludCAqeSl7CiAgICBjZWx1bGEgKnRvcG8gPSBwLT5wcm94OwogICAgKnkgPSB0b3BvLT5kYWRvOwogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCkKewogICAgaW50IGksIGogPSAwLCBuID0gMCwgZDsKICAgIGxvbmcgbG9uZyBpbnQgZGFkbywgYXV4OwogICAgY2hhciBvcGVyYWNhb1syMF07CiAgICBjZWx1bGEgKnByZXNlbnRlcyA9IGluaWNpYWxpemEoKTsKICAgIGNlbHVsYSAqbWVub3IgPSBpbmljaWFsaXphKCk7CgoKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIHNjYW5mKCIlcyIsb3BlcmFjYW8pOwoKICAgICAgICBpZiAoc3RyY21wKG9wZXJhY2FvLCAiUFVTSCIpID09IDApCiAgICAgICAgewoKICAgICAgICAgICAgc2NhbmYoIiVsbGQiLCAmZGFkbyk7CiAgICAgICAgICAgIGlmKHByZXNlbnRlcy0+cHJveCA9PSBOVUxMIHx8IG1lbm9yLT5wcm94ID09IE5VTEwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGF1eCA9IGRhZG87CiAgICAgICAgICAgICAgICBlbXBpbGhhKG1lbm9yLCBhdXgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoYXV4IDw9IGRhZG8pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZW1waWxoYShtZW5vciwgYXV4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBlbXBpbGhhKG1lbm9yLCBkYWRvKTsKICAgICAgICAgICAgICAgICAgICBhdXggPSBkYWRvOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVtcGlsaGEocHJlc2VudGVzLCBkYWRvKTsKICAgICAgICB9CgoKCiAgICAgICAgZWxzZSBpZiAoc3RyY21wKG9wZXJhY2FvLCAiUE9QIikgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChwcmVzZW50ZXMtPnByb3ggPT0gTlVMTCB8fCBtZW5vci0+cHJveCA9PSBOVUxMKXsKICAgICAgICAgICAgICAgIHByaW50ZigiRU1QVFlcbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGVzZW1waWxoYShwcmVzZW50ZXMsICZkKTsKICAgICAgICAgICAgICAgIGRlc2VtcGlsaGEobWVub3IsICZkKTsKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoc3RyY21wKG9wZXJhY2FvLCAiTUlOIikgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHByZXNlbnRlcy0+cHJveCA9PSBOVUxMIHx8IG1lbm9yLT5wcm94ID09IE5VTEwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiRU1QVFlcbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW1wcmltZVRvcG8obWVub3IsICZkKTsKICAgICAgICAgICAgICAgIHByaW50ZigiJWRcbiIsIGQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==