Mötesplats
문제
stycken vänner bor på var sin nod i ett träd med noder, där är udda. Ett träd är en sammanhängande graf med exakt kanter.
Vännerna vill nu alla träffas på en nod i trädet. De har kommit fram till att de vill mötas på den noden som minimerar summan av distanserna till vännerna, och har frågat dig om du kan hjälpa dem att hitta denna optimala mötesplats. Distansen mellan två noder och i trädet är antalet kanter på vägen mellan och . Så formellt sett vill du hitta noden som minimerar .
Detta tänker du är ett lätt problem, och börjar genast koda en lösning. Men det finns en twist! Vännerna har dåligt minne och kommer inte ihåg hur trädet ser ut. Dock kommer de ihåg följande: givet tre olika vänner kan de med säkerhet säga att de brukar mötas (när det bara är dem tre) på plats , där är noden som minimerar . Notera att inte nödvändigtvis är en av noderna eller .
I detta problem läser du alltså inte in grafen direkt i indatan, utan får istället fråga upp till frågor på formen: Var brukar vännerna mötas? Med hjälp av dessa frågor vill du hitta den optimala mötesplatsen.
[이미지 1]
Illustration av trädet i exempelfallet. Nod 2 är den optimala mötesplatsen.
예제
예제 1
5 500000 1 2 2 3 2 4 4 5
? 1 2 4 ? 1 3 4 ? 1 4 5 ? 1 2 3 ? 1 2 5 ! 3