Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- //#include <conio.h>
- #include <string>
- #include <vector>
- #include <math.h>
- #include <stack>
- #include <queue>
- #include <algorithm>
- #include <stdlib.h>
- #include <iostream>
- using namespace std;
- int dem = 0, k, p,c,x;
- int **ppt;
- char ch;
- int main()
- {
- scanf("%d%d", &p, &c);
- while (p)
- {
- dem++;
- vector<int> kq;
- queue<int**> que;
- stack<int**> pri;
- vector<int**> v;
- if (p < c)
- k = p;
- else
- k = c;
- v.resize(k + 1);
- for (int i = 1; i <= k; i++)
- {
- ppt = new int*;
- *ppt = new int;
- **ppt = i;
- v[i] = ppt;
- que.push(ppt);
- }
- for (int i = 0; i < c; i++)
- {
- ch = getchar();
- ch = getchar();
- if (ch == 'N')
- {
- while (pri.empty() == false && **pri.top() == -1)
- pri.pop();
- if (pri.empty() == false)
- {
- kq.resize(kq.size() + 1);
- kq[kq.size() - 1] = **pri.top();
- if (k < c)
- {
- que.push(pri.top());
- }
- pri.pop();
- }
- else
- {
- while (**(que.front()) == -1)
- que.pop();
- kq.resize(kq.size() + 1);
- kq[kq.size() - 1] = **que.front();
- if (k < c)
- {
- que.push(que.front());
- }
- que.pop();
- }
- }
- else
- {
- scanf("%d", &x);
- ppt = new int*;
- *ppt = new int;
- **ppt = x;
- if (x <= k)
- {
- **v[x] = -1;
- v[x] = ppt;
- }
- pri.push(ppt);
- }
- }
- printf("Case %d:\n", dem);
- for (int i = 0; i < kq.size(); i++)
- printf("%d\n", kq[i]);
- scanf("%d%d", &p, &c);
- }
- //_getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement