playhard 2010-11-07 15:07:00
点我顶贴
收藏
删除
提交了快10次了,都是没有输出,也没看出到底哪错了...是不是这题有问题啊
#include <iostream>
using namespace std;
int t, f[110000], w1, w2, t1, t2, n, bound;
int max(int a, int b)
{return a > b?a:b;}
int main()
{
cin >> n >> t;
for (int i = 1; i <= n; i++)
{
cin >> w1 >> t1>> w2 >> t2;
if (i == n)
break;
bound=t1<t2?t1:t2;
for (int j = t; j >= bound; j--)
{
if (j-t1>=0)
f[j]=max(f[j-t1]+w1,f[j]);
if (j-t2>=0)
f[j]=max(f[j-t2]+w2,f[j]);
}
}
f[t]=max(f[t-t1]+w1,f[t]);
f[t]=max(f[t-t2]+w2,f[t]);
cout << f[t];
return 0;
}