📄 1999.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1999 on 2005-09-22 at 22:24:03 */
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
class LinkedList {
public:
LinkedList *before;
LinkedList *next;
long value;
LinkedList* add(LinkedList *list) {
LinkedList *p = this, *f = this;
bool isMax = false;
while(list->value > p->value) {
if(p->next != NULL) {
p = p->next;
} else {
isMax = true;
break;
}
}
if(!isMax) {
if(p->before != NULL) {
p->before->next = list;
list->before = p->before;
} else {
f = list;
}
p->before = list;
list->next = p;
} else {
p->next = list;
list->before = p;
}
return f;
}
LinkedList* del() {
LinkedList *f = this->next;
if(this->next != NULL) {
this->next->before = NULL;
}
return f;
}
LinkedList(long va) {
before = NULL;
next = NULL;
value = va;
}
};
int main()
{
LinkedList *first = NULL, *list;
char order[10];
long T, i, value;
scanf("%ld", &T);
for(i = 0; i < T; i++) {
scanf("%s", order);
if(!strcmp(order, "add")) {
scanf("%ld", &value);
if(first == NULL) {
first = new LinkedList(value);
} else {
list = new LinkedList(value);
first = first->add(list);
}
} else if(!strcmp(order, "query")) {
if(first != NULL) {
printf("%ld\n", first->value);
}
} else if(!strcmp(order, "delete")) {
if(first != NULL) {
first = first->del();
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -