Gra (Game) - International Olympiad in Informatics

Transkrypt

Gra (Game) - International Olympiad in Informatics
InternationalOlympiadinInformatics2014
13-20thJuly2014
Taipei,Taiwan
game
Day-1tasks
Language:pl-PL
Gra(Game)
Jian-Jiajestchłopakiem,któryuwielbiagraćwgry.Zapytanyocoś,zamiastodpowiedzieć
bezpośredniowolirozpocząćgręzeswoimrozmówcą.PewnegodniaJian-Jiaspotkałswoją
przyjaciółkęMei-YuiopowiedziałjejosiecipołączeńlotniczychnaTajwanie.NaTajwaniejest
miastponumerowanych0,...,
.Międzyniektórymimiastamiistniejąbezpośredniepołączenia
lotnicze.Każdetakiepołączeniejestdwukierunkowe.
Mei-Yubyłaciekawa,czyzapomocąsamolotówmożnaprzemieścićsiępomiędzykażdymidwoma
miastami(bezpośredniolubpośrednio).Jian-Jianieodpowiedziałnapytanieprzyjaciółki,ale
zaproponowałjejpewnągrę.Mei-YumożewniejzadawaćJian-Jiapytaniapostaci„Czyistnieje
bezpośredniepołączenielotniczepomiędzymiastami oraz ?".NakażdetakiepytanieJian-Jia
natychmiastodpowiada.Mei-Yuzadałącznie
pytań,pytającokażdepołączenie
dokładnieraz.Mei-Yuzwyciężawgrze,jeślipozadaniu pytań,dlapewnego
,możestwierdzić,
czysiećjestspójna,tzn.czydasiępodróżowaćsamolotamipomiędzykażdymidwomamiastami
(bezpośredniolubpośrednio).Jeślidostwierdzenia,czysiećjestspójnaczynie,potrzebujeona pytań,
wówczaszwycięzcąwgrzejestJian-Jia.
ŻebygrabyłaciekawszadlaJian-Jia,jegoprzyjaciółkazgodziłasię,abygranieodnosiłasiędo
rzeczywistejsiecilotniczejnaTajwanie.ZamiasttegoJian-Jiamożetworzyćstrukturęsiecinabieżąco
wtrakciegry,biorącpoduwagęswojewcześniejszeodpowiedzinapytaniaMei-Yu.Twoimzadaniem
jestpomócJian-Jiazwyciężyć,podpowiadającmuodpowiedzinazadawanepytania.
Przykłady
Regułygryzostanąobjaśnionenatrzechprzykładach.Wkażdymprzykładzieliczbamiastto
natomiastliczbarundpytańiodpowiedzito
.
,
Wpierwszymprzykładzie(tabelaponiżej)Jian-Jiaprzegrywa,ponieważporundzie4Mei-Yuwiena
pewno,żemożnaprzeleciećsamolotamipomiędzykażdymidwomamiastami,niezależnieod
odpowiedziJian-Jianapytania5i6.
runda
1
2
3
4
----5
6
pytanie
0,1
3,0
1,2
0,2
-------3,1
2,3
odpowiedź
tak
tak
nie
tak
-----nie
nie
WkolejnymprzykładzieMei-Yumożewykazaćjużpo3rundzie,żeniemożnaprzeleciećsamolotami
1/3
pomiędzymiastami0i1,niezależnieodtego,coJian-Jiaodpowienapytania4,5i6.Jian-Jiaznowu
przegrywa.
runda
1
2
3
----4
5
6
pytanie
0,3
2,0
0,1
-------1,2
1,3
2,3
odpowiedź
nie
nie
nie
-----tak
tak
tak
WostatnimprzykładzieMei-Yuniemożestwierdzić,czypomiędzykażdymidwomamiastamidasię
przelecieć,czynie,ażdomomentu,gdywszystkie6pytańzostaniezadane.Jian-Jiawygrywagrę.Jest
takdlatego,gdyżjeśliJian-Jiaodpowietaknaostatniepytanie(patrztabelaponiżej),topodróż
samolotamipomiędzykażdąparąmiastjestmożliwa,natomiastjeśliJian-Jiaodpowienienaostatnie
pytanie,wówczasistniejeparamiast,pomiędzyktórymipodróżlotniczaniejestmożliwa.
runda
1
2
3
4
5
6
pytanie
0,3
1,0
0,2
3,1
1,2
2,3
odpowiedź
nie
tak
nie
tak
nie
tak
Zadanie
Napiszprogram,którypomożeJian-Jiazwyciężyćwgrze.Zauważ,żeaniMei-Yu,aniJian-Jianie
znająstrategiiprzeciwnika.Mei-Yumożepytaćopołączeniapomiędzyparamimiastwdowolnej
kolejności,aJian-Jiamusiodpowiadaćnatychmiastnakażdepytanie,nieznająckolejnychpytań.
Twojezadaniepoleganazaimplementowaniudwóchnastępującychfunkcji.
initialize(n)--Funkcjainitializebędziewywołanajakopierwsza.Parametr
oznaczaliczbęmiast.
hasEdge(u,v)--Następniebędziewywoływana
razyfunkcjahasEdge.
TewywołaniareprezentująpytaniaMei-Yuisąwykonywanewkolejnościichzadawania.Na
każdeznichnależyodpowiedzieć,czyistniejebezpośredniepołączenielotniczepomiędzy
miastami i .Jeślitakiebezpośredniepołączenieistnieje,wówczaswynikiemwywołania
funkcjipowinnobyć1,awprzeciwnymprzypadkupowinnotobyć0.
Podzadania
2/3
Każdepodzadanieskładasięzpewnejliczbygier.Twójprogramotrzymapunktyzadanepodzadanie,
tylkojeśliwimieniuJian-Jiawygrawszystkiegry.
podzadanie liczbapunktów
1
15
2
27
3
58
Implementacja
Powinieneśzgłosićdokładniejedenplikonazwiegame.c,game.cpplubgame.pas.Wtympliku
powinnaznaleźćsięimplementacjafunkcjiopisanychpowyżej,onastępującychsygnaturach.
ProgramywC/C++
voidinitialize(intn);
inthasEdge(intu,intv);
ProgramywPascalu
procedureinitialize(n:longint);
functionhasEdge(u,v:longint):longint;
Przykładowyprogramsprawdzający
Przykładowyprogramsprawdzającywczytujedanewnastępującymformacie:
wiersz1:n
kolejne wierszy:każdywierszzawieradwieliczbycałkowiteuiv,któreopisująpytanie
odnoszącesiędomiast i .
3/3

Podobne dokumenty