Cod sursa(job #2802957)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 19 noiembrie 2021 09:53:46
Problema Interclasari Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<bits/stdc++.h>
using namespace std;
ifstream F("interclasari.in");
ofstream G("interclasari.out");
const int B=1<<16,I=(1<<30)-1+(1<<30);
char r[B],w[B];
int a,b,c[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,I},k,n,i,j,s;
inline char A()
{
    if(++b==B)
        b=0,F.read(r,B);
    return r[b];
}
inline void D(char c)
{
    if(++a==B)
        a=0,G.write(w,B);
    w[a]=c;
}
inline int E()
{
    char c;
    int e=0;
    for(;!isdigit(c=A()););
    do
        e=e*10+c-'0';
    while(isdigit(c=A()));
    return e;
}
inline void H(int u)
{
    int i,f;
    for(i=1;c[i]<=u;++i);
    for(--i;i>=0;--i) {
        for(f=0;u>=c[i];++f,u-=c[i]);
        D(f+'0');
    }
}
struct C
{
    public: bool operator()(const int a, const int b) const
    {
        return a > b;
    }
};
priority_queue<int,vector<int>,C> h;
int main()
{
    for(b=B-1,a=-1,k=E();i<k;++i)
        for(n=E(),s+=n,j=0;j<n;++j)
            h.push(E());
    for(H(s),D('\n');!h.empty();h.pop())
        H(h.top()),D(' ');
    G.write(w,a+1);
    return 0;
}