ABC087B - Coins

atcoder.jp

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);
        }
    }
}