?? 金明預算.cpp
字號:
#include <iostream>
using namespace std;
int main(){
const int M = 70;
int tot[M]={0}, price[M][3]={0}, value[M][3]={0}, n, m, v, p, q, i, j;
bool zj[M]={0};
const int N = 3210;
int f[N]={0};
cin >>n >>m;
n /= 10;
for( i=1; i<=m; ++i ){
cin >>v >>p >>q;
v /= 10;
if( q ){
++tot[q];
price[q][tot[q]] = v;
value[q][tot[q]] = v * p ;
}
else{
price[i][0] = v;
value[i][0] = v * p ;
zj[i] = true;
}
}
for( i=1; i<=m; ++i )
if( zj[i] ){
for( j=n; j>=price[i][0]; --j ){
if( (p=f[j-price[i][0]]+value[i][0]) > f[j] ) f[j] = p;
if( (j>=price[i][0]+price[i][1])
&& ( (p=f[j-price[i][0]-price[i][1]]+value[i][0]+value[i][1])>f[j]) )
f[j] = p;
if( (j>=price[i][0]+price[i][2])
&& ( (p=f[j-price[i][0]-price[i][2]]+value[i][0]+value[i][2])>f[j]) )
f[j] = p;
if( (j>=price[i][0]+price[i][1]+price[i][2])
&& ( (p=f[j-price[i][0]-price[i][1]-price[i][2]]+value[i][0]+value[i][1]+value[i][2])>f[j]) )
f[j] = p;
}
}
cout <<f[n]*10 <<endl;
system( "pause" );
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -