Cod sursa(job #2013591)

Utilizator victoreVictor Popa victore Data 21 august 2017 19:59:01
Problema Interclasari Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<cstdio>
#include<queue>
#include<vector>

using namespace std;

vector<int> v[21],solved;
int n[21],poz[21];
typedef pair<int,int> ii;


int main()
{
    freopen("interclasari.in","r",stdin);
    freopen("interclasari.out","w",stdout);
    int k,i,j,x,sz=0;
    scanf("%d",&k);
    for(i=1;i<=k;++i)
    {
        scanf("%d",&n[i]);
        sz+=n[i];
        n[i]--;
        for(j=0;j<=n[i];++j)
        {
            scanf("%d",&x);
            v[i].push_back(x);
        }
    }
    printf("%d\n",sz);
    priority_queue< ii , vector<ii> , greater<ii> > pq;
    for(i=1;i<=k;++i)
        if(n[i] != -1)
        {
            poz[i]=0;
            pq.push(ii(v[i][poz[i]] , i));
        }
    while(!pq.empty())
    {
        ii fr=pq.top();
        int sir=fr.second;
        pq.pop();
        printf("%d ",fr.first);
        if(poz[sir] != n[sir])
        {
            poz[sir]++;
            pq.push(ii(v[sir][poz[sir]],sir));
        }
    }
    return 0;
}