Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2016 15:46:22

1736w
Зарегистрирован: 2016-11-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подарки


вот такая задачка, не совсем понимаю как это реализовать,поможете?

Офлайн

#2 Ноя. 13, 2016 05:26:48

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Подарки

 from itertools import cycle
from collections import defaultdict
  
with open('data.tmp', 'w', encoding='utf8') as data:
    data.write('3 4\n')
    data.write('car\n')
    data.write('plane\n')
    data.write('robot\n')
    data.write('puzzle\n')
    data.write('5 3\n')
    data.write('car\n')
    data.write('plane\n')
    data.write('robot\n')
    data.write('2 4\n')
    data.write('car\n')
    data.write('plane\n')
    data.write('robot\n')
    data.write('puzzle\n')
  
def solve(fin):
    while True:
        line = fin.readline()
        if not line:
            break
        N, M = [int(n) for n in line.split()]
        gifts = defaultdict(list)
        for kid, gift in zip(cycle(range(N)), range(M)):
            gifts[kid].append(fin.readline()[:-1])
        yield N, gifts
        
with open('data.tmp', 'r', encoding='utf8') as fin:
    for N, gifts in solve(fin):
        for kid in range(N):
            kid_gifts = gifts[kid]
            print(len(kid_gifts), ' '.join(kid_gifts))
        print()
если по условиям задачи данные получаются из стандартного ввода, то просто передаете sys.stdin вместо fin



Отредактировано izekia (Ноя. 13, 2016 05:27:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version