Pagini recente » Cod sursa (job #2723157) | Cod sursa (job #571408) | Cod sursa (job #218579) | Cod sursa (job #2538385) | Cod sursa (job #1982217)
#include <fstream>
#include <vector>
#include <algorithm>
#define MAX 20000005
using namespace std;
ifstream fi("interclasari.in");
ofstream fo("interclasari.out");
vector <int> V;
vector <int> :: iterator it;
vector <int> :: iterator a_it;
vector <int> :: iterator b_it;
int k,n,x,i,j,st,dr,mij;
void interclasare(vector <int> a,int a_lung,vector <int> b,int b_lung,vector <int> &c)
{
a_it=a.begin(),b_it=b.begin();
while (a_it!=a.end()&&b_it!=b.end())
if (*a_it<=*b_it)
c.push_back(*a_it),a_it++;
else
c.push_back(*b_it),b_it++;
while (a_it!=a.end())
c.push_back(*a_it),a_it++;
while (b_it!=b.end())
c.push_back(*b_it),b_it++;
}
int main()
{
fi>>k;
for (i=1; i<=k; i++)
{
fi>>n;
for (j=1; j<=n; j++)
{
fi>>x;
///cautam pozitia lui x in V
if (V.empty())
V.push_back(x);
else if (V.size()==1)
{
if (x<V.front())
V.insert(V.begin(),x);
else
V.insert(V.end(),x);
}
else
{
st=0,dr=V.size();
while (dr-st>1)
{
mij=(st+dr)/2;
it=V.begin()+mij;
if (x<*it)
dr=mij;
else
st=mij;
}
V.insert(V.begin()+st+1,x);
}
}
}
fo<<V.size()<<"\n";
for (it=V.begin(); it!=V.end(); it++)
fo<<*it<<" ";
return 0;
}