From 38f0fdf0a0f23ff4862ddc9449565717066c9f43 Mon Sep 17 00:00:00 2001 From: Kirito <1362050620@qq.com> Date: Tue, 24 May 2016 19:26:05 +0800 Subject: [PATCH] Create 1443.cpp --- QUSTOJ/1443.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 QUSTOJ/1443.cpp diff --git a/QUSTOJ/1443.cpp b/QUSTOJ/1443.cpp new file mode 100644 index 0000000..c7c14bb --- /dev/null +++ b/QUSTOJ/1443.cpp @@ -0,0 +1,44 @@ +#include +using namespace std; +int m,n; +int solve() +{ + int a,b,mx=0; + int i,j; + int v[61]={0},p[61]={0},q; + int v1[61]={0},v2[61]={0},p1[61]={0},p2[61]={0}; + int f[50001]={0}; + m/=10; + for(i=1;i<=n;i++) + { + cin>>a>>b>>q; + a/=10; + if(q!=0) + { + if(v1[q]==0){v1[q]=a;p1[q]=b;} + else {v2[q]=a;p2[q]=b;} + } + else {v[i]=a;p[i]=b;} + } + for(int i=1;i<=n;i++) + for(int j=m;j>=v[i];j--) + { + f[j]=max(f[j],f[j-v[i]]+v[i]*p[i]); + if(j-v1[i]-v[i]>=0)f[j]=max(f[j],f[j-v1[i]-v[i]]+v1[i]*p1[i]+v[i]*p[i]); + if(j-v2[i]-v[i]>=0)f[j]=max(f[j],f[j-v2[i]-v[i]]+v2[i]*p2[i]+v[i]*p[i]); + if(j-v1[i]-v2[i]-v[i]>=0)f[j]=max(f[j],f[j-v1[i]-v2[i]-v[i]]+v1[i]*p1[i]+v2[i]*p2[i]+v[i]*p[i]); + mx=max(f[j],mx); + } + cout<>m>>n) + { + solve(); + } + return 0; +}