ABC085C - Otoshidama

atcoder.jp

x + y + z = N なので x と y から z は決まる。z でのループは不要。x と y の二重ループで探索すればいい。

using System;

namespace ABC085C
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine().Split(' ');
            var N = int.Parse(input[0]);
            var Y = int.Parse(input[1]);

            for (var x = N; x >= 0; x--)
            {
                for (var y = N - x; y >= 0; y--)
                {
                    var z = N - x - y;
                    if (10000 * x + 5000 * y + 1000 * z == Y)
                    {
                        Console.WriteLine($"{x} {y} {z}");
                        return;
                    }
                }
            }

            Console.WriteLine("-1 -1 -1");
        }
    }
}