Pagini recente »
Istoria paginii utilizator/delia1228
|
Istoria paginii utilizator/0021592
|
Monitorul de evaluare
|
Istoria paginii utilizator/musatalexandru
|
Cod sursă (job #585034)
Cod sursă (job
#585034)
#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;
}