fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. struct elKolejki {
  5. int wart;
  6. elKolejki* wsk;
  7. };
  8.  
  9. struct kolejka {
  10. elKolejki* poczatek;
  11. elKolejki* koniec;
  12. int rozmiar;
  13.  
  14. kolejka() {
  15. poczatek = NULL;
  16. koniec = NULL;
  17. rozmiar = 0;
  18. }
  19.  
  20. void push(int x) {
  21. elKolejki* nowy = new elKolejki;
  22. nowy->wart = x;
  23. nowy->wsk = NULL;
  24.  
  25. if (rozmiar == 0) {
  26. poczatek = koniec = nowy;
  27. } else {
  28. koniec->wsk = nowy;
  29. koniec = nowy;
  30. }
  31. rozmiar++;
  32. }
  33.  
  34. int front() {
  35. return poczatek->wart;
  36. }
  37.  
  38. void pop() {
  39. if (rozmiar == 0)
  40. return;
  41.  
  42. elKolejki* tmp = poczatek;
  43. poczatek = poczatek->wsk;
  44. delete tmp;
  45. rozmiar--;
  46. if (rozmiar == 0) {
  47. koniec = NULL;
  48. }
  49. }
  50.  
  51. int size() {
  52. return rozmiar;
  53. }
  54. };
  55.  
  56. int main() {
  57. kolejka q;
  58. int n;
  59. cin >> n;
  60. for (int i = 0; i < n; i++) {
  61. char a;
  62. cin >> a;
  63.  
  64. if (a == '+') {
  65. int x;
  66. cin >> x;
  67. q.push(x);
  68. }
  69. if (a == '-') {
  70. cout << q.front() << endl;
  71. q.pop();
  72. }
  73. if(a == '='){
  74. cout << q.size() << endl;
  75. }
  76. }
  77. return 0;
  78. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
Standard output is empty