Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <vector>
- #include <stack>
- #include <string>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- #include <cstdio>
- #include <cstdlib>
- #include <fstream>
- #include <map>
- #include <set>
- #include <deque>
- #include <sstream>
- #include <queue>
- #include <string.h>
- #pragma comment(linker,"/STACK:16777216")
- using namespace std;
- //Loops
- #define FOR(i,a,b) for(int (i) = (a); (i) <= (b); ++(i))
- #define ROF(i,a,b) for(int (i) = (a); (i) >= (b); --(i))
- #define rep(i,n) for (int (i) = 0; (i) < (n); ++(i))
- #define fe(i,a) for (int (i) = 0; (i) < int((a).size()); ++(i))
- #define MEM(a,b) memset((a),(b),sizeof(a))
- //Constants
- #define inf 1000000000
- #define pi 2*acos(0.0)
- #define N 200010
- #define eps 1e-9
- //Functions
- #define pb push_back
- #define ppb pop_back
- #define all(c) (c).begin(), (c).end()
- #define sz(x) int((x).size())
- #define sqr(a) (a)*(a)
- //Pairs
- #define mp(a,b) make_pair((a), (b))
- #define X first
- #define Y second
- //Input-Output
- #define FREOPEN(a,b) freopen(a,"r",stdin); freopen(b,"w",stdout);
- typedef vector<int> vint;
- typedef long long ll;
- typedef pair<int, int> pii;
- const long long mod = 1ll << 32;
- class Deque{
- private :
- struct Node{
- Node *next, *prev;
- int val;
- Node(int _val) : val(_val), prev(NULL), next(NULL) {}
- };
- typedef Node * PNode;
- PNode tail;
- public :
- Deque(){
- tail = NULL;
- }
- void push_back(int value){
- PNode cur = new Node(value);
- if (tail == NULL){
- tail = cur;
- tail->next = tail;
- tail->prev = tail;
- }
- else {
- cur->next = tail->next;
- tail->next->prev = cur;
- tail->next = cur;
- cur->prev = tail;
- tail = cur;
- }
- }
- void push_front(int value){
- PNode cur = new Node(value);
- if (tail == NULL){
- tail = cur;
- tail->next = tail;
- tail->prev = tail;
- }
- else {
- cur->next = tail->next;
- tail->next->prev = cur;
- tail->next = cur;
- cur->prev = tail;
- }
- }
- int pop_back(){
- int ans = tail->val;
- PNode p = tail->next;
- if (p != tail){
- tail = tail->prev;
- tail->next = p;
- }
- else tail = NULL;
- return ans;
- }
- int pop_front(){
- int ans = tail->next->val;
- if (tail->next != tail)tail->next = tail->next->next; else
- tail = NULL;
- return ans;
- }
- };
- Deque v[150000];
- int main() {
- //FREOPEN("input.txt", "output.txt");
- int test,a,b;
- string s;
- scanf("%d\n", &test);
- while (test--){
- cin >> s;
- scanf("%d", &a);
- a--;
- if (s == "pushfront"){
- scanf("%d", &b);
- v[a].push_front(b);
- } else
- if (s == "pushback"){
- scanf("%d", &b);
- v[a].push_back(b);
- } else
- if (s == "popfront")printf("%d\n", v[a].pop_front()); else
- if (s == "popback") printf("%d\n", v[a].pop_back());
- scanf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement