[QUIZ#4] Pistenjodler e.V.

Hallo,

vielen Dank :)
ich hab mich auch mal mit Scala dran versucht (einfache Variante ohne Pfad) und komme zu den gleichen Ergebnissen:

Java:
package de.tutorials.contests

import scala.io._

object PistenYodeler2 {
  def main(args:Array[String]):Unit = {
    var lines = Source.fromFile( "data/pisten.txt" ).getLines
    while(lines.hasNext){
      var name = lines.next.trim
      var height = Integer.parseInt(lines.next.trim)

      //Transformiere Zeilen zu int[] 
      var levels = lines.take(height).map(line => line.trim.split(" ").map(token => Integer.parseInt(token)))
      
      /*
       * greedy hillclimbing 
       */
      var result = levels.reduceRight((top,bottom)=>
             {
             var i = 0
             top.map(
                     topGain =>{
                             var gain = topGain + (if (bottom.length == 1) bottom(0) else Math.max(bottom(i),bottom(i+1)))
                             i+=1
                             gain
                            }
                     )
             }
         )
      println(name + " " + height +" longest path: " + result(0))
    }
   }
}
Ich versuche den reduceRight-Abschnitt noch etwas schicker hinzubekommen...
das geht sicherlich noch ein Stückchen einfacher.
Das mit dem Pfad mitmerken habe ich auch sieht aber wegen dem notwendigem Bookeeping sehr unschön aus...

Streckenname Höhe längster Pfad
Code:
Vordertux 4 longest path: 23
Hindelang-Oberjoch 59 longest path: 652
Jungholz 55 longest path: 611
Wertach 95 longest path: 1030
Oy-Mittelberg 95 longest path: 1060
Bolsterlang 59 longest path: 658
Ofterschwang 58 longest path: 641
Obermaiselstein 56 longest path: 608
Balderschwang 59 longest path: 660
Immenstadt 89 longest path: 965

Gruß Tom
 
Ich arbeite gerade (gestern Nacht, nachher) noch an einer stark kommentierten Brainfuck Version. Bisher siehts auch schon ganz gut aus... Aber dynamischen Zugriff auf ein Array in Brainfuck ist schon ne Qual gewesen =)
 
Zurück