Cod sursa(job #2887641)

Utilizator iioaaana777Ghergu Ioana iioaaana777 Data 9 aprilie 2022 22:32:20
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.5 kb
#include <iostream>
#include <fstream>
#include <string.h>
#include <stack>
using namespace std;

ifstream fin("queue.in");
ofstream fout("queue.out");

int main()
{
    int N, lg, val;
    char s[255];
    stack<int> s1;
    stack<int> s2;

    fin>>N;
    for(int i = 0; i < N; ++i)
    {
        fin.get();
        fin.get(s, 255);
        lg = strlen(s);
        if(s[1] == 'u')
            {   val = 0;
                for(int j = 10; j < lg - 1; ++j)
                    val = val*10 + (s[j] - '0');
                s1.push(val);
                fout<<i + 1<<": "<<"read("<<val<<") push(1,"<<val<<") \n";
            }
        else
        {
                fout<<i + 1<<": ";
                if(!s2.empty())
                {
                    while(s2.size() != 1)
                    {
                        fout<<"pop(2) push(1,"<<s2.top()<<") ";
                        s1.push(s2.top());
                        s2.pop();
                    }
                    fout<<"pop(2) write("<<s2.top()<<") \n";
                    s2.pop();
                }

                else
                {
                    while(s1.size() != 1)
                    {
                        fout<<"pop(1) push(2,"<<s1.top()<<") ";
                        s2.push(s1.top());
                        s1.pop();
                    }
                    fout<<"pop(1) write("<<s1.top()<<") \n";
                    s1.pop();

                }
        }
    }
    return 0;
}