B3836 [GESP202303 二级] 百鸡问题

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3+10,inf = 0x3f3f3f3f;

int main()
{
    int x,y,z,n,m; //公鸡x元,母鸡y元,小鸡z只1元,共有n元要买m只鸡 
    cin >> x >> y >> z >> n >> m;
    int sum = 0; //统计方案数 
    for(int i = 0; i <= n / x; i++) //公鸡i,最少0只,最多n元/x元 只 
        for(int j = 0; j <= n / y; j++)//母鸡j,最少0只,最多n/y只 
        {
            int k = (n - i * x - j * y) * z; //剩下的钱 * z就是买小鸡的数量
            if(i + j + k == m && k >= 0) //如果公鸡i + 母鸡j + 小鸡z刚好m只,且小鸡经过减法后依然为正数,说明是合法解 
                sum++; 
        }
    cout << sum;
    return 0;
}

 

posted @ 2025-04-28 23:13  CRt0729  阅读(512)  评论(0)    收藏  举报