题解 | #称砝码#

称砝码

http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

#include <iostream>
using namespace std;

bool find(int sort[120000],int end,int number)
{
    for(int i=0; i<end; i++)
    {
        if(sort[i] == number)
        {
            return true;
        }
    }
    return false;
}
int main()
{
    int num1;
    while(cin>>num1)
    {
        //输入
        int wight[num1];
        for(int i=0; i<num1; i++)
        {
            cin>>wight[i];
        }
        int number[num1];
        for(int i=0; i<num1; i++)
        {
            cin>>number[i];
        }
        int sort[120000];
        sort[0] = 0;
        int tmp = 1;
        for(int i=0; i<num1; i++)
        {
            for(int j=0; j<number[i]; j++)
            {
                sort[tmp] = 0;
                int m = tmp;
                for(int k=0; k<m;k++)
                {
                    if(!find(sort,tmp,sort[k]+wight[i]))
                    {
                        sort[tmp] = sort[k]+wight[i];
                        tmp ++;
                    }
                }
            }
        }

        //输出
        cout<<tmp<<endl;
    }
    return 0;

}
全部评论

相关推荐

收到了北京经纬恒润AE产品测试部门的offer,有了解的友友吗?工作内容怎么样?加班真的很严重吗?值得去吗?
La_place:有人说的人在那边,就是正常互联网作息吧,一天十个小时出头,双休这样。加班有,但是可能也不算严重?
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务