Cod sursa(job #2596933)

Utilizator lev.tempfliTempfli Levente lev.tempfli Data 10 aprilie 2020 17:55:34
Problema Combinari Scor 80
Compilator py Status done
Runda Arhiva educationala Marime 0.97 kb
def input_gen_int(fnmae):
    with open(fnmae, 'rt') as fin:
        for line in fin:
            for val in line.split():
                yield int(val)


class Combination:
    def __init__(self, n, k):
        self.stat = [0 for _ in range(n + 1)]
        self.x = [0 for _ in range(k)]
        self.n = n
        self.k = k

    def generate_write(self, fout, i):
        for j in range(1, n + 1):
            if self.stat[j] == 1 or (i != 0 and self.x[i - 1] > j): continue
            self.x[i] = j
            self.stat[j] = 1

            if i != k - 1:
                self.generate_write(fout, i + 1)
            else:
                for e in self.x:
                    fout.write('{} '.format(e))
                fout.write('\n')

            self.stat[j] = 0


if __name__ == "__main__":
    ig = input_gen_int("combinari.in")
    n, k = next(ig), next(ig)
    com = Combination(n, k)
    print("end")
    with open("combinari.out", 'wt') as fout:
        com.generate_write(fout, 0)