Напомена: ово је незванична копија задатака. Као таква, не гарантује се да ће овај сајт бити одржаван, и немојте се изненадити ако са њега задаци одједном нестану.
Локална болница вас је замолила да помогнете око планирања трансфузија крви. Тренутно имају \(N\) пацијената који чекају трансфузију, и за сваког од њих је позната крвна група и број јединица крви које су му потребне. Интересује их да ли је, са залихама које су на располагању, могуће сваком од ових пацијената дати трансфузију са одговарајућом количином крви групе која је компатибилна са његовом.
За потребе овог задатка, постоје четири крвне групе: О, А, Б и АБ (у стварности, класификација је компликованија).
Приликом трансфузије важе следећа правила:
Од вас се тражи да за сваког пацијента дате списак јединица које ће
примити, тако да су дата правила испуњена, сваки пацијент добије онолико
јединица колико му је потребно, и да је број искоришћених јединица мањи
или једнак од оног у залихама. Уколико ово није могуће, ваш програм
треба да само испише nemoguce
.
У првом реду се налази један цео број \(N\): број пацијената у болници.
У другом реду се налази четири броја \(O, A, B, AB\): број јединица крви у залихама болнице за сваку од четири крвне групе. Редом, ови бројеви представљају залихе О, А, Б и АБ групе.
У наредних \(N\) редова се налазе
описи појединачних пацијената, који се састоје од стринга са његовом
крвном групом (један од O
, A
, B
,
AB
) и броја јединица (цео број) који му је потребан
раздвојених размаком.
Уколико је могуће распоредити залихе крви тако да сваки пацијент
добије одговарајући број јединица поштујући дата правила, у први ред
излаза исписати moguce
. Затим, у наредних \(N\) редова исписати јединице додељене
пацијентима, у истом редоследу којим су пацијенти дати на улазу. У
сваком реду ово исписати као четири цела броја: број јединица сваке од
група додељен том пацијенту, истим редоследом којим су дате у залихама
(О, А, Б, АБ).
Уколико није могуће распоредити залихе, у први и једини ред излаза
исписати nemoguce
.
Ако постоји више распореда који задовољавају правила, исписати било који.
Тест примери су подељени у три дисјунктне групе:
3
2 0 2 2
A 1
B 1
AB 3
moguce
1 0 0 0
0 0 1 0
1 0 0 2
Болница у залихама има по две јединице крви О, Б и АБ групе. Једно могуће решење је да пацијент групе А ком је потребна једна јединициа добије О, пацијент групе Б добије Б, а пацијент групе АБ ком су потребне три јединице добије једну О и две АБ.
3
1 0 4 0
A 1
AB 2
O 1
nemoguce
Болница у залихама има једну јединицу О крви и четири Б. Пошто имамо пацијента А групе и О групе, који могу од ове две да приме само О крв, нема је довољно и није могуће задовољити све потребе.