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