Pagini recente »
Borderou de evaluare (job #486546)
|
Borderou de evaluare (job #165770)
|
Borderou de evaluare (job #317967)
|
Borderou de evaluare (job #617911)
|
Cod sursă (job #585266)
Cod sursă (job
#585266)
#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;
}