Cod sursă (job #585266)

Utilizator avatar veresioan veres ioan florian veresioan IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 1,35 kb
Rundă Arhiva de probleme Status evaluat
Dată 10 mar. 2021 08:38:10 Scor 70
#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 i,m=sir.size();
    char a;
    for(i=1; i<m; i++)
        if(in>>a)
        {
            x=a;
            rezerva.push(x);
            if(sir[i]!=x)
                return 1;
        }
        else
            return 0;

    return 0;
}

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 comand(int x)
{
    int k=ver(x);
    if(k==1)
        copiere();
}

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

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;
}