Pagini recente » Cod sursa (job #2903070) | Cod sursa (job #1587710) | Cod sursa (job #2456516) | Cod sursa (job #1267833) | Cod sursa (job #1889688)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
struct pq_member
{
int wh,val;
}el;
struct pq_comp
{
bool operator()(pq_member unu,pq_member doi)
{
return unu.val>doi.val;
}
};
priority_queue< pq_member,vector<pq_member>,pq_comp> pq;
int i,k,v[21][1000005],n,sum,lim[21],ind[21],j,lst;
int main()
{
ifstream f("interclasari.in");
ofstream g("interclasari.out");
f>>k;
for(i=1;i<=k;i++)
{
f>>n;sum+=n;
for(j=1;j<=n;j++)
{
f>>v[i][j];
}
lim[i]=n;
}
for(i=1;i<=k;i++)
if(lim[i]!=0)
{
ind[i]=1;
el.wh=i;
el.val=v[i][1];
pq.push(el);
}
g<<sum<<'\n';
lst=-1;
for(i=1;i<=sum;i++)
{
el=pq.top();pq.pop();
if(el.val!=lst)g<<el.val<<' ';
// lst=el.val;
if(ind[el.wh]<lim[el.wh])
{
ind[el.wh]++;
el.val=v[el.wh][ind[el.wh]];
pq.push(el);
}
}
return 0;
}