Pagini recente » Cod sursa (job #192322) | Cod sursa (job #1162089) | Cod sursa (job #3220378) | Cod sursa (job #934919) | Cod sursa (job #2291227)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream f("interclasari.in");
ofstream g("interclasari.out");
struct date
{
int val,sir;
};
date d,minim;
int n,v[21],dim[21],a[21][1000001],nr,k;
struct cmp
{
bool operator() (const date &X,const date &Y)
{
return (X.val>Y.val);
}
};
priority_queue <date,vector<date>,cmp>MinHeap;
int main()
{
int i,j;
f>>k;
for(i=1;i<=k;i++)
{
f>>dim[i];
nr=nr+dim[i];
for(j=1;j<=dim[i];j++)
{
f>>a[i][j];
}
}
g<<nr<<"\n";
for(i=1;i<=k;i++)
{
if(v[i]<dim[i])
{
v[i]++;
d.val=a[i][v[i]];
d.sir=i;
MinHeap.push(d);
}
}
while(!MinHeap.empty())
{
minim=MinHeap.top();
MinHeap.pop();
g<<minim.val<<" ";
if(v[minim.sir]<dim[minim.sir])
{
v[minim.sir]++;
d.val=a[minim.sir][v[minim.sir]];
d.sir=minim.sir;
MinHeap.push(d);
}
}
return 0;
}