Cod sursa(job #2127982)

Utilizator Hidden.bdBurlacu Doru Hidden.bd Data 11 februarie 2018 12:20:52
Problema Interclasari Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <set>
#include <cstring>

using namespace std;

ifstream fin("interclasari.in");
ofstream fout("interclasari.out");


typedef pair<int, int> element;
vector<element> v[22];
multiset<element> s;
int siruri[22];
int capat[22];

int main(){
    
    for( int i = 1 ; i <= 20 ; ++i ){
       v[i].push_back(make_pair(1, i));
        ++siruri[i];
    }
    
    element e;
    
    int n, m, x;
    int sum = 0;
    fin >> n;
    
    for( int i = 1 ; i <= n ; ++i ){
        fin >> m;
        capat[i] = m;
        sum += m;
        for( int j = 1 ; j <= m ; ++j ){
            fin >> x;
            v[i].push_back(make_pair(x, i));
            if( j == 1 ){
                s.insert(v[i][j]);
            }
        }
    }
    
    fout << sum << "\n";;
    
    for( int i = 1 ; i <= sum ; ++i ){
        e = *s.begin();
        fout << e.first << " ";
        s.erase(s.begin());
        if( siruri[e.second] + 1 <= capat[e.second] ){
           s.insert(v[e.second][++siruri[e.second]]);
        }
        
    }
     
    
    
    return 0;
    
}