Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- struct node {
- node *next = nullptr;
- node *prev = nullptr;
- int num = 0;
- string name = "";
- };
- void add(node* L,string sname,int snum) {
- node *p = L;
- while (p->next != nullptr)
- p = p->next;
- node *q = new node;
- q->name = sname;
- q->num = snum;
- p->next = q;
- q->next = nullptr;
- q->prev = p;
- }
- void del(node* L, int n) {
- node* p=L;
- while(p->next!=nullptr)
- p=p->next;
- while(n>0) {
- if (n >= p->num) {
- n -= p->num;
- node *q = p;
- p = p->prev;
- delete q;
- p->next = nullptr;
- } else {
- p->num -= n;
- break;
- }
- }
- }
- void get(node* L,string sname) {
- node *p = L;
- int n = 0;
- while (p != nullptr) {
- if (p->name == sname)
- n += p->num;
- p = p->next;
- }
- cout << n << endl;
- }
- int main() {
- node *L = new node;
- L->next = nullptr;
- string opera, name;
- int num, n, k;
- cin >> k;
- for (int i = 0; i < k; i++) {
- cin >> opera;
- if (opera == "add") {
- cin >> num >> name;
- add(L, name, num);
- }
- if (opera == "delete") {
- cin >> n;
- del(L, n);
- }
- if (opera == "get") {
- cin >> name;
- get(L, name);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement