Cod sursă (job #585034)

Utilizator avatar veresioan veres ioan florian veresioan IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 1,26 kb
Rundă Arhiva de probleme Status evaluat
Dată 8 mar. 2021 11:43:47 Scor 20
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream in("bart.in");
ofstream out("bart.out");

vector<int> sir;
queue<int> rezerva;

int ver(int x)
{
    //cout<<x<<'\n';
    rezerva.push(x);

    int m=sir.size();
    char a;
    for(int i=1; i<m && in>>a; i++)
    {
        x=a;
        rezerva.push(x);
        if(sir[i]!=x)
            return 1;
    }
    return a;
}

void copiere()
{
    while(!rezerva.empty())
    {
        cout<<rezerva.front()<<' ';
        sir.push_back(rezerva.front());
        rezerva.pop();
    }
    cout<<'\n';
}

void afis()
{
    for(int i=0; i<sir.size(); i++)
    {
        char a=sir[i];
        out<<a;
    }
    out<<'\n';
}

void verificare(int x)
{
    if(sir[0]==x)
    {
        int k=ver(x);
        if(k==1)
            copiere();
        else
            verificare(k);
    }
    else if(rezerva.empty())
        sir.push_back(x);
    else
        rezerva.push(x);
}

void intrare(char a)
{
    int x;
    x=a;
    if(sir.empty())
        sir.push_back(x);
    else
        verificare(x);

    //afis();
}

int main()
{
    char a;
    while(in>>a)
        intrare(a);

    afis();
    return 0;
}