Problem:
Sum and Average

販売単価と販売数量を読み込んで、販売金額の総合計と販売数量の平均を出力するプログラムを作成してください。

Input

入力は以下の形式で与えられます。

販売単価,販売数量
販売単価,販売数量
:
:

カンマで区切られた販売単価と販売数量の組が、複数行に渡って与えられます。入力される値はすべて 0 以上 1,000 以下で、販売単価と販売数量の組の数は 100 を超えません。

Output

１行目に販売金額の総合計（整数）、２行目に販売数量の平均(整数）を出力してください。
販売数量の平均に端数（小数点以下の数）が生じた場合は小数点以下第 1 位を四捨五入してください。

Sample Input

100,20
50,10
70,35

Output for the Sample Input

4950
22

Solution in JAVA (judge verdict: Accepted)

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

class Main {

	public static void main(String[] args) {

		Scanner sc = null;
		try {
			sc = new Scanner(System.in);
			Map<Integer, Integer> map = new HashMap<Integer, Integer>();
			while (sc.hasNextLine()) {
				String[] s = sc.nextLine().split(",");
				map.put(Integer.parseInt(s[0]), Integer.parseInt(s[1]));
			}

			int totalPrice = 0;
			int totalQuantity = 0;
			for (int unitPrice : map.keySet()) {
				int quantity = map.get(unitPrice);
				totalPrice += unitPrice * quantity;
				totalQuantity += quantity;
			}

			int quantityAve = new BigDecimal(totalQuantity).divide(
					new BigDecimal(map.size()), RoundingMode.HALF_UP)
					.intValue();

			System.out.println(totalPrice);
			System.out.println(quantityAve);

		} finally {
			sc.close();
		}
	}
}