From 32543464c23f57c1365582766235f01e58ac4c4e Mon Sep 17 00:00:00 2001 From: Kirito <1362050620@qq.com> Date: Sun, 3 Jul 2016 11:59:20 +0800 Subject: [PATCH] Create 1181.cpp --- QUSTOJ/1181.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 QUSTOJ/1181.cpp diff --git a/QUSTOJ/1181.cpp b/QUSTOJ/1181.cpp new file mode 100644 index 0000000..4c17c9f --- /dev/null +++ b/QUSTOJ/1181.cpp @@ -0,0 +1,46 @@ +#include +using namespace std; +int main() +{ + int a,b,mx=0; + int i; + int m,n,v[61]= {0},p[61]= {0},q; + int v1[61]= {0},v2[61]= {0},p1[61]= {0},p2[61]= {0}; + int f[50001]= {0}; + cin>>m>>n; + 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<