SRM629_DIV2_550

問題概要

アリスはクラスメート全員の為にアメを作る。
各クラスメートは飴を入れてもらう容器を提供し、
また各々は容器に入れてもらいたい重量を提示する。
アリスは一定の密度でアメを入れなければならない為、
各クラスメートの要望を聞き入れることができない。

各クラスメートの要望重量と実際の重量との差分を合計し、
一番小さい(みんなが満足度が高い)差分合計を出力せよ。

回答コード(C#)

class CandyMaking
{
	public double findSuitableDensity (int[] containerVolume, int[] desiredWeight)
	{
		int classmateNum = containerVolume.Length;
		double min = 1.0E+300;
		double sum = 0.0;

		for (int i = 0; i < classmateNum; i++) {
			double d = (double)desiredWeight [i] / (double)containerVolume [i];

			sum = 0.0;
			for (int j = 0; j < classmateNum; j++) {
				sum += Math.Abs( (double)desiredWeight [j] - (d * (double)containerVolume [j]));
			}

			if (min > sum)
				min = sum;

		}
		return min;
	}