InternationalOlympiadinInformatics2014 13-20thJuly2014 Taipei,Taiwan friend Day-2tasks Language:en-BOL Friend Construimosunaredsocialde personasnumeradasde0,..., .Algunosparesdepersonasen laredseránamigos.Silapersona esamigodelapersona ,entonceslapersona tambiénesamigo delapersona . Laspersonassonañadidasalareden etapas,lascualessonnumeradasde a .Esdecirla persona esañadidaenlaetapa .Enlaetapa0,lapersona0esañadidacomolaunicapersonaenla red.Encadaunadelassiguientes etapas,unapersonaesañadidaalaredporun(host),quien puedesercualquierpersonaqueyaestaenlared.Enlaetapa ( ),elhostpuedeañadira lapersona dentrolaredsiguiendounodelossiguientes3protocolos. IamYourFriendhacealapersona amigodesoloelhost. MyFriendsAreYourFriendshacealapersona amigodecadaunodelosamigosdelhost. Notaqueesteprotocolonohacequelapersona seaunamigodelhost. WeAreYourFriendshacealapersona amigodelhost,ytambienamigodecadaunodelos amigosdelhost. Despuesdeconstruirlarednosgustariaescogerunamuestraparaunaencuesta,estoquieredecir, escogerungrupodepersonasdelared.Yaquelosamigosnormalmentetieneninteresesiguales,la muestranodebeincluirapersonasquesonamigos.Cadapersonatieneunaencuestadeconfidencia expresadacomounenteropositivo,ynosgustariaencontrarunamuestraconelmáximototalde confidencia. Example stage 1 2 3 4 5 host 0 0 1 2 0 protocol IamYourFriend MyFriendsAreYourFriends WeAreYourFriends MyFriendsAreYourFriends IamYourFriend friendrelationsadded (1,0) (2,1) (3,1),(3,0),(3,2) (4,1),(4,3) (5,0) Inicialmentelaredcontienesoloalapersona0.Elhostdelaetapa1(enestecasolapersona0)invita alapersona1conelprotocoloIamYourFriend,porlotantoellossonamigos.Elhostdelaetapa2 (persona0nuevamente)invitaalapersona2conMyFriendsAreYourFriends,locualhaceala persona1(únicoamigodelhost)elunicoamigodelapersona2.Elhostdelaetapa3(persona1) añadealapersona3conWeAreYourFriends,elcualhacealapersona3unamigodelapersona1(el host)ylaspersonas0y2(losamigosdelhost).Laetapa4y5sontambienmostradasenlatablade arriba.laredfinalesmostradaenlaimagenacontinuación,losnumerosdentroloscirculosmuestran lasetiquetasdelaspersonas,ylosnúmerosalladodeloscirculosmuestranlasencuestasde 1/3 confidencia.Lamuestraconsistentedelaspersonas3y5tienenuntotaldeencuestadeconfidencias iguala20+15=35,elcualeselmáximoposibletotaldeconfidencia. Task Dadaladescripcióndecadaetapayelvalordeconfidenciadecadapersona,encontrarunamuestra conelmáximototaldeconfidencia.TusolonecesitasimplementarlafunciónfindSample. findSample(n,confidence,host,protocol) n:elnúmerodepersonas. confidence:arraydelongitud ;confidence[i]quecontieneelvalordeconfidencia delapersona . host:arraydelongitud ;host[i]quecontienealhostdelaetapa . protocol:arraydelongitud ;protocol[i]quecontieneelcódigodelprotocolo usadoenlaetapa ( ):0forIamYourFriend,1forMyFriendsAreYourFriends, and2forWeAreYourFriends. Yaquenohayhostenlaetapa0,host[0]yprotocol[0]sonindefinidosyno deberíanserprocesadosportuprograma. Lafuncióndeberíaretornarelmáximoposibletotaldeconfidencia. Subtasks Somesubtasksuseonlyasubsetofprotocols,asshowninthefollowingtable. subtask points 1 11 2 8 3 4 8 19 5 23 6 31 confidence Allconfidencevaluesare1 protocolsused Allthreeprotocols Only MyFriendsAreYourFriends OnlyWeAreYourFriends OnlyIamYourFriend Both MyFriendsAreYourFriendsand IamYourFriend Allthreeprotocols 2/3 Implementationdetails Youhavetosubmitexactlyonefile,calledfriend.c,friend.cpporfriend.pas.Thisfileshould implementthesubprogramdescribedabove,usingthefollowingsignatures.Youalsoneedtoincludea headerfilefriend.hforC/C++implementation. C/C++program intfindSample(intn,intconfidence[],inthost[],intprotocol[]); Pascalprograms functionfindSample(n:longint,confidence:arrayoflongint,host:array oflongint;protocol:arrayoflongint):longint; Samplegrader Thesamplegraderreadstheinputinthefollowingformat: line1:n line2:confidence[0],...,confidence[n-1] line3:host[1],protocol[1],host[2],protocol[2],...,host[n-1],protocol[n-1] ThesamplegraderwillprintthereturnvalueoffindSample. 3/3