adatok = [] with open('felajanlas.txt', 'r') as forrasfajl: agyasok = int(forrasfajl.readline().strip()) for sor in forrasfajl: sor = sor.strip().split() sor = list(map(int, sor[:2])) + sor[2:] adatok.append(sor) # 2. feladat print(f'\n2. feladat\nA felajánlások száma: {len(adatok)}') # 3. feladat print('\n3. feladat\nA bejárat mindkét oldalán ültetők: ', end='') for index,adat in enumerate(adatok): if adat[0] > adat[1] or (adat[0] == 1 and adat[1] == agyasok): print(index+1, end=' ') print() # 4. feladat print(f'\n4. feladat') agyas = int(input('Adja meg az ágyás sorszámát: ')) felajanlok = 0 szinek = [] for adat in adatok: if adat[0] <= adat [1]: if agyas in range(adat[0], adat[1]+1): felajanlok += 1 szinek.append(adat[-1]) if adat[0] > adat [1]: if agyas in range(1,adat[1]) or agyas in range(adat[0], agyasok+1): felajanlok += 1 szinek.append(adat[-1]) print(f'A felajánlások száma: {felajanlok}') print(f'A virágágyás színe, hogyha csak az első ültet: {szinek[0]}') print(f'A virágágyás színei: {" ".join(set(szinek))}') # 5. feladat print('\n5. feladat') vallalt = { i:0 for i in range(1,agyasok+1) } for i in range(1,agyasok+1): for adat in adatok: if adat[0] <= adat[1]: if i in range(adat[0],adat[1]+1): vallalt[i] += 1 if adat[0] > adat[1]: if (i in range(1,adat[1]+1)) or (i in range(adat[0], agyasok+1)): vallalt[i] += 1 if 0 not in vallalt.values(): print('Minden ágyás beültetésére van jelentkező.') elif sum(vallalt.values()) > agyasok: print('Átcsoportosítással megoldható a beültetés.') else: print('A beültetés nem oldható meg.') # 6. feladat ultetes = [ ['#', 0] for _ in range(agyasok) ] for index,adat in enumerate(adatok): if adat[0] <= adat[1]: for i in range(adat[0], adat[1]+1): if ultetes[i-1] == ['#', 0]: ultetes[i-1] = [ adat[2], index+1 ] elif adat[0] > adat[1]: for i in range(1,adat[1]+1): if ultetes[i-1] == ['#', 0]: ultetes[i-1] = [ adat[2], index+1 ] for j in range(adat[0], agyasok+1): if ultetes[j-1] == ['#', 0]: ultetes[j-1] = [ adat[2], index+1 ] with open('szinek.txt', 'w') as celfajl: for elem in ultetes: print(*elem, file=celfajl)