Π£ΡΡΠ°Π» Π²ΠΎΠ΅Π²Π°ΡΡ Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠΎΠΌ. ΠΠΎΡΠ΅ΠΌΡ ΠΎΠ½ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π²Π΅ΡΠ½ΡΠΌ.
ΠΠΎΡΠΎΠΊ ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΊΡΡΡ.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
package com.javarush.task.task19.task1920;
/*
Π‘Π°ΠΌΡΠΉ Π±ΠΎΠ³Π°ΡΡΠΉ
*/
import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
Pattern pattern = Pattern.compile("[a-zA-Z_Π°-ΡΠ-Π―]+");
Double maxValue = 0.0;
Map<String, Double> map = new TreeMap<>();
String str;
while ((str = bufferedReader.readLine())!=null){
Matcher matcher = pattern.matcher(str);
matcher.find();
String name = str.substring(0, matcher.end());
Double value = Double.parseDouble(str.substring(matcher.end(), str.length()).trim());
if (map.containsKey(name)){
Double oldValue = map.get(name);
double resultValue = oldValue + value;
if (resultValue > maxValue){
maxValue = resultValue;
}
map.put(name, resultValue);
} else {
map.put(name, value);
if (value > maxValue){
maxValue = value;
}
}
}
bufferedReader.close();
Iterator<Map.Entry<String, Double>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, Double> pair = iterator.next();
if(pair.getValue().equals(maxValue)){
System.out.println(pair.getKey());
}
}
}
}