牛客练习赛60 D 斩杀线计算大师(枚举)

题目描述

算术能力是每个炉石玩家必不可少的,假设现在有三种伤害卡,伤害值分别是 a , b , c a,b,c 。并且每种伤害卡的数量你可以认为是无限的。现在牛牛想知道是否存在一种方式可以刚好造成 k k 点伤害,输出 x , y , z x,y,z 分别表示三种伤害卡的使用个数。
数据保证一定存在解。如果存在多组解,输出任意一组。

输入描述:

一行四个整数分别表示 a , b , c , k a,b,c,k

输出描述:

一行输出三个整数分别表示 x , y , z x,y,z

示例1

输入

3 4 5 20

输出

4 2 0

思路:

既然保证一定有解那就好做了,直接枚举答案即可。

AC代码:

const int N = 1e5 + 10;
const int mod = 998244353;
ll a, b, c, k;
int main()
{
	slddd(a, b, c);
	sld(k);
	per(i, k / a, 1)
	{
		per(j, (k - i * a) / b, 1)
		{
			if ((k - a * i - b * j) % c == 0)
			{
				pddd(i, j, (k - a * i - b * j) / c);
				return 0;
			}
		}
	}
	return 0;
}
发布了786 篇原创文章 · 获赞 460 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/105157955
今日推荐