[1] 授業単元: アルゴリズム論(ナップザック問題とその応用)
[2] 問題文

   (1)  (2)  (3)  (4)  (5)
A1  10  45  30  10  10

A2  20  15  10  20  18

A3  30  25  30  40  15

A4  18  15  30  10  18

(1)〜(n)のタスクと、A1〜Amの人がいます。
例えば、4人いて、タスクが5つあるとき、(1)〜(5)を実行するのにかかるコストが
上の表の通り与えられています。
そして、それぞれの人は、1つだけタスクを担当することができます。
但し、タスクが人の数より少ない場合は、タスクが与えられない人がいても構いません。
また、人の数がタスクの数より少ない場合は、余ったタスクがあっても構いません。
ただし、できるだけ多くの仕事をこなさなければなりません。
(この場合はタスクが5つ、仕事4つなので、A〜D全員が受け持たなければならない。)
このとき、コストを最小にする選択を見つけるようなプログラムを書きなさい。

[3] 環境 … Visual C++ (Visual Studio2005 Express Edition)
[4] 期限 … 2007/01/15 00:00
[5] STL使用禁止だそうです。
------------------------------------------------------------

効率のよいアルゴリズムを教えていただけないでしょうか。
よろしくお願いします。