import Bank._ import Ordering.Double.TotalOrdering val poczatkowa = 250d def oblicz(list:List[(String,Double)]):(Set[String],Double) = { val wynik = list .groupMapReduce(x => x._1)(x => x._2)(_+_) //Map[String,Double] .toList .sortBy(x => x._1) .scanLeft(("",250d))((x,a) => (a._1,x._2+a._2) ) .tail .groupMap(x => x._2)(x => x._1) .maxBy(_._1) (wynik._2.toSet,wynik._1) } println(oblicz(dane))