Infinity = 1000000

def hasChild parent, graph
  graph[parent].each do |cost|
    return true unless cost == Infinity
  end
  false
end

def calcTwoway parent, graph
  n = graph.size
  time = 0
  #全ての子について
  n.times do |child|
    #接続されていない場合飛ばす
    next if graph[parent][child] == Infinity
    #孫が存在しない場合は飛ばす
    next unless hasChild(child, graph)
    #再帰処理
    childTime = calcTwoway(child, graph)
    #もしコストが更新できるなら、上書き
    total = time + childTime + graph[parent][child] * 2
    time = total if total > time
  end
  time
end

def calcLongestOneway parent, graph
  n = graph.size
  time = 0
  #全ての子について
  n.times do |child|
    #接続されていない場合飛ばす
    next if graph[parent][child] == Infinity
    #孫が存在しない場合飛ばす
    next unless hasChild(child, graph)
    #子について再帰処理
    childTime = calcLongestOneway(child, graph)
    #もし最長コストを更新できるなら、上書き
    total = childTime + graph[parent][child]
    time = total if total > time
  end
  time
end

numIsland = $stdin.gets.to_i
graph = Array.new(numIsland).map{Array.new(numIsland, Infinity)}
loop do
  a,b,t = $stdin.gets.split(" ").map(&:to_i)
  if a == 0
    p calcTwoway(0, graph) - calcLongestOneway(0,graph)
    break
  end
  graph[a - 1][b - 1] = t
end