0
点赞
收藏
分享

微信扫一扫

PTA——货物运输

梦为马 2022-04-30 阅读 46
c语言

小明是一名货车司机,他需要从N件货物中选取若干件运送到某地,货车的总载重量是W吨,而每件货品的价格和重量是不同的,小明只能运送一次,那么问题来了,假如给出N件商品的价格和重量,在总载重量允许情况下(即总重量<=W)一次拉货所能获得的最大总价格是多少?

输入格式:

输入两个正整数N和W,N表示货物的件数N<30,W表示货车的最大承重。
然后输入N行,每行两个整数,分别表示货物的价格和重量。

输出格式:

在总载重量允许情况下(即总重量<=W)一次拉货所能获得的最大总价格。

输入样例:

4
3
2 1
2 2
5 3
9 4

输出样例:

5
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>

int x=0, y=0;
struct wjk
{
    int a, b;
};
struct wjk c[10000];
void wjk(int n)
{
    int j=1;
    x=0,y=0;
    while(n)
    {
        if(n%2!=0)
        {
            x+=c[j].a;
            y+=c[j].b;
        }
        n/=2;
        j++;
    }
}
int main()
{
    int i, n, w, max=0, sum=1, j;
    scanf("%d%d", &n, &w);
    for(i=1; i<=n; i++)
        scanf("%d%d", &c[i].a, &c[i].b);
    for(j=1;j<=n;j++)
        sum*=i;
    for(i=1; i<sum; i++)
    {
        wjk(i);
        if(x>max&&y<=w)
            max=x;
    }
    printf("%d", max);
    return 0;
}

 

举报

相关推荐

0 条评论