Holiday - International Olympiad in Informatics

Transcription

Holiday - International Olympiad in Informatics
InternationalOlympiadinInformatics2014
13-20thJuly2014
Taipei,Taiwan
holiday
Day-2tasks
Language:fr-BE
Holiday
Jian-JiaveutplanifiersesprochainesvacancesàTaiwan.Durantsonséjour,Jian-Jiasedéplaced'une
villeàuneautreetvisitelesattractionsdecesvilles.
IlyaàTaiwan villes,toutessituéeslelongd'uneseuleroute.Lesvillessontnumérotéesde0à
.Pourlaville ,pour
,lesvillesadjacentessont
et
.L'uniqueville
adjacenteàlaville0estlaville1etl'uniquevilleadjacenteàlaville
estlaville
.
Chaquevillecontientunnombredonnéd'attractions.Jian-Jiaauncertainnombre dejoursde
vacancesetprojettedevisiterautantd'attractionsquepossible.Iladéjàchoisiunevilledanslaquelleil
commencesonséjour.Pourchaquejourdesesvacances,ilpeutsoitsedéplacerversuneville
adjacentesoitvisitertouteslesattractionsdelavilleoùilséjourne,maispaslesdeux.Jian-Jiane
visiterajamaislesattractionsd'unemêmevilledeuxfoismêmes'ilyséjourneplusieursfois.Aidez
Jian-Jiaàplanifiersonséjourdefaçonàcequ'ilvisiteleplusd'attractionsdifférentespossibles.
Exemple
SupposonsqueleséjourdeJian-Jiadure7jours,qu'ilya5villes(listéesdansletableauci-après),et
qu'ilcommenceàlaville2.Lorsdu1erjour,ilvisiteles20attractionsdelaville2.Le2èmejour,il
passedelaville2àlaville3,etle3èmejourilvisiteles30attractionsdelaville3.Jian-Jiapasseles
troisjourssuivantsàsedéplacerdelaville3àlaville0etilvisiteles10attractionsdelaville0le
7èmejour.Lenombretotald'attractionsqueJian-Jiaavisitéest20+30+10=60,c'estlenombre
maximald'attractionsqueJian-Jiapeutvisiterlorsdes7joursenpartantdelaville2.
ville
0
1
2
3
4
jour
1
2
3
4
5
6
7
nombred'attractions
10
2
20
30
1
action
visitelesattractionsdelaville2
sedéplacedelaville2àlaville3
visitelesattractionsdelaville3
sedéplacedelaville3àlaville2
sedéplacedelaville2àlaville1
sedéplacedelaville1àlaville0
visitelesattractionsdelaville0
1/3
Tâche
VousdevezimplémenterunefonctionfindMaxAttractionquicalculelenombremaximal
d'attractionsqueJian-Jiapeutvisiter.
findMaxAttraction(n,start,d,attraction)
n:lenombredevilles.
start:lavillededépart.
d:lenombredejours.
attraction:tableaudetaille ;attraction[i]estlenombred'attractionsdansla
ville ,pour
.
Lafonctiondoitretournerlenombremaximald'attractionsqueJian-Jiapeutvisiter.
Sous-tâches
Dansl'ensembledessous-tâches,
estpositifounul.
etlenombred'attractionsdechaqueville
Contraintesadditionnelles:
soustâche
points
nombremaximald'attractionspar
ville
1
7
1.000.000.000
2
23
100
3
17
1.000.000.000
4
53
1.000.000.000
villededépart
aucune
contrainte
ville0
aucune
contrainte
aucune
contrainte
Détailsd'implémentation
Vousdevezsoumettreunseulfichier,nomméholiday.c,holiday.cppouholiday.pas.Ce
fichierdoitimplémenterlafonctiondécriteprécédemmentenutilisantunedessignaturessuivantes.
Vousdevezinclure(#include)l'en-têteholiday.hpourlesprogrammesenC/C++.
Notezquelerésultatpeutatteindreunegrandevaleur,etqueletypederetourde
findMaxAttractionestunentier64bits.
ProgrammeC/C++
longlongintfindMaxAttraction(intn,intstart,intd,
intattraction[]);
2/3
ProgrammePascal
functionfindMaxAttraction(n,start,d:longint;
attraction:arrayoflongint):int64;
Evaluateur
L'évaluateurlitl'entréeensuivantceformat
ligne1:n,start,d.
ligne2:attraction[0],...,attraction[n-1].
L'évaluateurafficheralavaleurderetourdefindMaxAttraction.
3/3