fork download
  1. /// SPOJ – Ada and Queue
  2. #include <bits/stdc++.h>
  3. #define X first
  4. #define Y second
  5. #define pb push_back
  6. using namespace std;
  7. typedef long long ll;
  8. typedef pair <int,int> ii;
  9. typedef pair <int,ii> i_ii;
  10. typedef vector <int> vi;
  11. typedef vector <ii> vii;
  12.  
  13. const int maxn=102;
  14. const ll MOD=1000000007;
  15.  
  16. int Q,N;
  17. string s;
  18. bool rev=false;
  19. deque <int> dq;
  20.  
  21. int main()
  22. {
  23. // freopen("nhap.inp", "r", stdin);
  24. cin >> Q;
  25. while (Q--)
  26. {
  27. cin >> s;
  28. if (s[0] == 't')
  29. {
  30. scanf("%d",&N);
  31. if (!rev) dq.push_front(N);
  32. else dq.push_back(N);
  33. }
  34. if (s[0] == 'p')
  35. {
  36. scanf("%d",&N);
  37. if (!rev) dq.push_back(N);
  38. else dq.push_front(N);
  39. }
  40. if (s[0] == 'b')
  41. {
  42. if (dq.empty())
  43. {
  44. printf("No job for Ada?\n");
  45. continue;
  46. }
  47. if (!rev)
  48. {
  49. printf("%d\n",dq.back());
  50. dq.pop_back();
  51. }
  52. else {
  53. printf("%d\n",dq.front());
  54. dq.pop_front();
  55. }
  56. }
  57. if (s[0] == 'f')
  58. {
  59. if (dq.empty())
  60. {
  61. printf("No job for Ada?\n");
  62. continue;
  63. }
  64. if (!rev)
  65. {
  66. printf("%d\n",dq.front());
  67. dq.pop_front();
  68. }
  69. else {
  70. printf("%d\n",dq.back());
  71. dq.pop_back();
  72. }
  73. }
  74. if (s[0] == 'r')
  75. rev = 1 - rev;
  76. }
  77. return 0;
  78. }
  79.  
Success #stdin #stdout 0s 4540KB
stdin
Standard input is empty
stdout
Standard output is empty