1/3
InternationalOlympiadinInformatics2014
13-20thJuly2014
Taipei,Taiwan
Day-2tasks
friend
Language:fr-BE
Friend
Onconstruitunréseausocialde membresnumérotés0,..., .Certainespairesdemembresdu
seauserontamis.Silemembre devientamiaveclemembre ,alorslemembre estégalement
amiaveclemembre .
Lesmembressontajoutésauseauen étapesquisontégalementnuméroesde à .Le
membre estajouàl'étape .Àl'étape0,lemembre0estajoutécommeuniquemembreduréseau.
Danschacunedes étapessuivantes,unmembreestajoutéauseauparunhôtequipeutêtre
n'importequellepersonnedéjàmembreduréseau.Àl'étape ( ),l'tedecetteétapepeut
ajouterlemembre auréseauensuivantl'undesprotocolessuivants:
JeSuisTonAmi(IAmYourFriend):faitdel'hôtel'uniqueamidumembre .
MesAmisSontTesAmis(MyFriendsAreYourFriends):faitdumembre l'amidechaqueami
del'hôteaumomentdelarequête.Notezqueceprotocolnerendpascemembre amide
l'hôte.
NousSommesTesAmis(WeAreYourFriends):faitdumembre l'amidel'hôteainsiquede
chaqueamidel'hôteaumomentdelarequête.
Aprèsavoirconstruitleseau,onaimeraitpouvoirsélectionnerunéchantillonreprésentatifde
personnespourunsondage,c'est-à-direuncertaingroupedemembresduréseau.Vuquedesamis
ontsouventlesmêmescentresd'intérêt,l'échantillonnedoitpasincluredepairedemembresquisont
amisl'undel'autre.Chaquemembreaunniveaudefiabilité(confidence)pourlesondage,exprimé
parunentierstrictementpositif.Onaimeraittrouverlchantillondemembresquimaximiselafiabili
totale.
Exemple
étape hôte protocole amitsajoutés
1 0 JeSuisTonAmi (1,0)
2 0 MesAmisSontTesAmis (2,1)
3 1 NousSommesTesAmis (3,1),(3,0),(3,2)
4 2 MesAmisSontTesAmis (4,1),(4,3)
5 0 JeSuisTonAmi (5,0)
Initialement,leseaunecontientquelemembre0.L'hôtedel'étape1(lemembre0)invitele
nouveaumembre1vialeprotocoleJeSuisTonAmi,ilsdeviennentdoncamis.L'hôtedel'étape2(le
membre0denouveau)invitelemembre2vialeprotocoleMesAmisSontTesAmis,quifaitdumembre
1(l'uniqueamidel'hôte)l'ami(leseul)dumembre2.L'hôtedel'étape3(lemembre1)ajoutele
membre3vialeprotocoleNousSommesTesAmis,quifaitdumembre3l'amidumembre1(l'te)et
desmembres0et2(amisdel'hôte).Lesétapes4et5sontégalementdonnéesdanslatableci-dessus.
2/3
Leseaufinalestreprésendansleschémasuivantdanslequellesnombresàl'intérieurdescercles
indiquentlenumérodumembreetlesnombresàcôtédescerclesindiquentleniveaudefiabilité.
L'échantilloncompodesmembres3et5aunniveautotaldefiabilitéégalà20+15=35,quiestle
niveautotaldefiabilitémaximalqu'ilestpossibled'atteindre.
Tâche
Étantdonnésladescriptiondechaqueétapeetleniveaudefiabilitédechaquemembre,trouver
l'échantillonavecleniveautotaldefiabilitémaximal.Vousdevezuniquementimplémenterlafonction
findSample.
findSample(n,confidence,host,protocol)
n:lenombredemembres.
confidence:untableaudetaille ;confidence[i]indiquelafiabilitédumembre .
host:tableaudetaille ;host[i]indiquel'hôtedel'étape .
protocol:tableaudetaille ;protocol[i]indiquelecodeduprotocoleutilisépour
l'étape ( ):0pourJeSuisTonAmi,1pourMesAmisSontTesAmis,et2pour
NousSommesTesAmis.
Vuqu'iln'yapasd'hôteàltape0,host[0]etprotocol[0]sontindéfinisetne
doiventpasêtreutilisparvotreprogramme.
Lafonctiondoitretournerleniveautotaldefiabilitémaximalpossible.
Sous-tâches
Certainessous-tâchesutilisentunsous-ensembledesprotocoles,commedéfinici-dessous.
sous-
che points fiabilité protocolesutilisés
1 11
é
Les3protocoles
2 8
é
Uniquement
MesAmisSontTesAmis
3 8
é
Uniquement
NousSommesTesAmis
4 19
é
UniquementJeSuisTonAmi
5 23 Touteslesfiabilités
valent1
MesAmisSontTesAmiset
JeSuisTonAmi
3/3
6 31
é
Les3protocoles
sous-
che points fiabilité protocolesutilisés
Implémentation
Vousdevezsoumettreunseulfichier,appeléfriend.c,friend.cppoufriend.pas.Cefichier
doitimplémenterlafonctiondécritepcédemment,enrespectantlessignaturessuivantes.Vousdevez
inclure(#include)l'en-têtefriend.hpourl'implémentationC/C++.
ProgrammeC/C++
intfindSample(intn,intconfidence[],inthost[],intprotocol[]);
ProgrammePascal
functionfindSample(n:longint,confidence:arrayoflongint,host:array
oflongint;protocol:arrayoflongint):longint;
Évaluateur
L'évaluateurfournilitl'entréedansleformatsuivant:
ligne1:n
ligne2:confidence[0],...,confidence[n-1]
ligne3:host[1],protocol[1],host[2],protocol[2],...,host[n-1],protocol[n-1]
L'évaluateurafficheralavaleurretournéeparfindSample.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !