HDU 1171 Big Event in HDU

来源:互联网 发布:信用卡怎么淘宝套现 编辑:程序博客网 时间:2024/05/02 02:18
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int val[5005];int dp[255555];int main(){    int n;    while(cin>>n&&(n>0))    {        memset(dp,0,sizeof(dp));        memset(val,0,sizeof(val));        int k=0,sum=0;        int v,m;        for(int i=0;i<n;i++)        {            cin>>v>>m;            while(m--)            {                val[k++]=v;                sum+=v;            }        }        for(int i=0;i<k;i++)        {            for(int j=sum/2;j>=val[i];j--)            {                dp[j]=max(dp[j],dp[j-val[i]]+val[i]);            }        }        cout<<sum-dp[sum/2]<<" "<<dp[sum/2]<<endl;    }    return 0;}

0 0
原创粉丝点击