1-тапсырма "Тетрис-онлайн" ойыны Кіріс деректерінің сипаттамасы



бет1/2
Дата18.10.2022
өлшемі38,08 Kb.
#43807
  1   2
Байланысты:
питон практика


1-тапсырма - "Тетрис-онлайн" ойыны
Кіріс деректерінің сипаттамасы
бірінші жолда n саны бар - хаттама жолдарының жалпы саны. Келесі N жолдарының әрқайсысында бос орын арқылы жазылған қатысушының нәтижесі (100 миллионнан аспайтын бүтін теріс емес сан) және ойын атауы (атауда бос орын болмайды) бар. Бастапқы деректердің жолдары хаттаманың жолдарына сәйкес келеді және хаттамадағыдай тәртіппен орналасқан.
жарысқа қатысушылардың саны 3-тен кем болмайтынына кепілдік беріледі.
Шығу сипаттамасы
бағдарлама төменде келтірілген үлгі бойынша үздік үш ойыншының аты-жөні мен нәтижелерін көрсетуі керек.
Кіру мысалы:
9
69485 Джек 
95715 qwerty 
95715 Alex 
83647 m
197128 qwerty 
95715 Jack 
93289 Alex 
95715 Алекс және
95715 m
Жоғарыда келтірілген кіріс мысалдары үшін Шығыс мысалы:
1 орын. qwerty (197128)
2 орын. Алекс(95715)
3 орын. Jack (95715)
Шешім:

score_table = {}


N = int(input())
for time in range(N):
ball, name = input().split()
ball = int(ball)
if name in score_table:
if ball > score_table[name][0]:
score_table[name][0] = ball
score_table[name][1] = time
else:
score_table[name] = [ball, time]
scores = list(score_table.items())
def score_key(a):
return a[1][0]*100000000 - a[1][1]
scores.sort(key=score_key, reverse = True)
for winner_index in 0, 1, 2:
print(winner_index + 1, 'место.', scores[winner_index][0], end =' ')
print('(', scores[winner_index][1][0], ')', sep='')
2-тапсырма-жүкті сақтау камерасына өткізу< / h4>
бағдарламаға кіруге өз багажын сақтау камерасына түн ортасына дейін алдын ала белгілі уақытқа тапсырғысы келетін жолаушылар туралы мәліметтер беріледі. Бірінші жолда N жолаушылар саны хабарланады, ол 3 – тен кем емес, бірақ 1000-нан аспайды; екінші жолда-K сақтау камерасындағы ұяшықтар саны, ол 10-нан кем емес, бірақ 1000-нан аспайды. Мынадай N
жолдардың әрқайсысының мынадай форматы болады:
<тегі> <багажды тапсыру уақыты> <ұяшықты босату уақыты>,
мұнда <тегі> – 20 сынамасыз таңбадан аспайтын жолдан тұратын жол; & lt;багажды тапсыру уақыты & gt;; - қос нүкте арқылы сағаттарға (00 – ден 23 – ке дейін-дәл 2 таңба) және минуттарға (00-ден 59-ға дейін-дәл 2 таңба) сәйкес келетін екі бүтін сан; & LT; ұяшықты босату уақыты & gt; бірдей пішімге ие. < тегі >және & lt; багажды тапсыру уақыты & gt;, сондай-ақ< багажды тапсыру уақыты >және< ұяшықты босату уақыты & gt; бір бос орынмен бөлінген. Босату уақыты тапсыру уақытынан көп.
мәліметтер багажды тапсыру уақыты тәртібімен сұрыпталған. Сақтау камерасындағы жолаушылардың әрқайсысына ең аз нөмірі бар бос ұяшық бөлінеді. Егер багажды тапсыру кезінде бос ұяшықтар болмаса, онда жолаушы олардың біреуінің босатылуын күтпей кетеді.
бағдарлама жазу керек (Borland Pascal 7.0 сияқты бағдарламалау тілінің пайдаланылған нұсқасын көрсетіңіз), ол әр жолаушы үшін берілген ұяшықтың нөмірін көрсетеді (келесі жолаушының деректерін енгізгеннен кейін бірден мүмкін болады). Егер жолаушыға ұяшық берілмесе, онда оның тегі басылмайды.
кіріс деректерінің мысалы:
3
10
Иванов 09:45 12:00
Петров 10: 00 11:00
Сидоров 12:00 13: 12
бағдарламаның осы кіріс деректеріндегі жұмысының нәтижесі:
Иванов 1 < br>Петров 2 < br>Сидоров 1
Решение:

N = int(input())


K = int(input())
time_outs = [None for x in range(K)]
for i in range(N):
name, time_in, time_out = input().split()
for yachejka in range(K):
if time_outs[yachejka] < time_in or \
time_outs[yachejka] == None:
print(name, yachejka)
time_outs[yachejka] = time_out
break


Достарыңызбен бөлісу:
  1   2




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет