Cod sursa(job #3236613)

Utilizator bogdan1479Luca Bogdan Alexandru bogdan1479 Data 29 iunie 2024 18:39:01
Problema Combinari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.35 kb
#include <fstream>

using namespace std;

const short MAX = 1 << 14;

ofstream outFile("combinari.out", std::ios::binary | std::ios::out | std::ios::trunc);
ifstream fin("combinari.in");

short n, m, k = 1, x[19], c = -1, i;
char s[MAX + 20];

void afis()
{
    outFile.write(s, c + 1);
    c = -1;
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin >> n >> m;
    fin.close();
    while(k > 0)
        if(x[k] < n - m + k)
        {
            ++x[k];
            if(k == m)
            {
                for(i = 1; i < m; i++)
                {
                    if(c >= MAX)
                        afis();
                    if(x[i] > 9)
                        s[++c] = '1', s[++c] = short(x[i] + 38);
                    else
                        s[++c] = short(x[i] + 48);
                    s[++c] = ' ';
                }
                if(c >= MAX)
                    afis();
                if(x[k] > 9)
                    s[++c] = '1', s[++c] = short(x[i] + 38);
                else
                    s[++c] = short(x[i] + 48);
                s[++c] = '\n';
            }
            else
            {
                ++k;
                x[k] = x[k - 1];
            }
            if(c >= MAX)
                afis();
        }
        else
            k--;
    afis();
    return 0;
}