CF898B Proper Nutrition

题目描述

Vasya 有 $n$ 布尔货币。一瓶 Ber-Cola 的价格是 $a$ 布尔货币,一块 Bars 巧克力的价格是 $b$ 布尔货币。他可以购买任意数量(包括零)的 Ber-Cola 和 Bars 巧克力。 请你判断,Vasya 能否用这些钱买到若干瓶 Ber-Cola 和若干块 Bars 巧克力,使得恰好花掉 $n$ 布尔货币。 换句话说,你需要找到两个非负整数 $x$ 和 $y$,使得 Vasya 可以购买 $x$ 瓶 Ber-Cola 和 $y$ 块 Bars 巧克力,且满足 $x·a+y·b=n$。如果没有这样的方案,也请你说明不可能。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10\,000\,000$),表示 Vasya 拥有的钱数。 第二行包含一个整数 $a$($1 \leq a \leq 10\,000\,000$),表示一瓶 Ber-Cola 的价格。 第三行包含一个整数 $b$($1 \leq b \leq 10\,000\,000$),表示一块 Bars 巧克力的价格。

输出格式

如果没有办法刚好花掉 $n$ 布尔货币,请输出一行 “NO”(不带引号)。 否则,第一行输出 “YES”(不带引号)。第二行输出两个非负整数 $x$ 和 $y$,表示 Vasya 需要购买 $x$ 瓶 Ber-Cola 和 $y$ 块 Bars 巧克力,使得 $x·a+y·b=n$。如果有多组解,你可以输出其中任意一组。 $x$ 和 $y$ 中的任意一个都可以为 $0$。

说明/提示

在第一个样例中,Vasya 可以买两瓶 Ber-Cola 和一块 Bars 巧克力,正好花费 $2·2+1·3=7$ 布尔货币。 在第二个样例中,Vasya 可以有多种花光全部钱的方法: - 买两瓶 Ber-Cola 和五块 Bars 巧克力; - 买四瓶 Ber-Cola,不买 Bars 巧克力; - 不买 Ber-Cola,买 $10$ 块 Bars 巧克力。 在第三个样例中,不可能恰好花掉 $n$ 布尔货币去购买 Ber-Cola 和 Bars 巧克力。 由 ChatGPT 5 翻译