0 <= A, B, C <= 50
なので、所持している硬貨の枚数の組み合わせは最大 125000 通り。
組み合わせ全パターン計算して X
と一致するものを数えても、2 秒以内で余裕で間に合う。
using System; namespace ABC087B { class Program { static void Main(string[] args) { var a = int.Parse(Console.ReadLine()); var b = int.Parse(Console.ReadLine()); var c = int.Parse(Console.ReadLine()); var x = int.Parse(Console.ReadLine()); var result = 0; for(var i = 0; i <= a; i++) { for(var j = 0; j <= b; j++) { for(var k = 0; k <= c; k++) { if((500 * i + 100 * j + 50 * k) == x) { result++; } } } } Console.WriteLine(result); } } }