#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int Lu[55], Hui[55], n;
int a[250010], b[250010];
while (cin >> n && n)
{
memset(Lu, 0, sizeof(Lu));
memset(Hui, 0, sizeof(Hui));
int sum = 0;
for (int i = 1; i <= n; i++)
{
cin >> Lu[i] >> Hui[i];
sum += Lu[i] * Hui[i];
}
memset(a, 0, sum * sizeof(a[0]));
memset(b, 0, sum * sizeof(b[0]));
int Yi = Lu[1] * Hui[1];
for (int i = 0; i <= Lu[1] * Hui[1]; i += Lu[1])
a[i] = 1;
for (int i = 2; i <= n; i++)
{
for (int j = 0; j <= Yi; j++)
for (int k = 0; k <= Lu[i] * Hui[i]; k += Lu[i])
b[j + k] += a[j];
Yi += Lu[i] * Hui[i];
for (int j = 0; j <= Yi; j++)
{
a[j] = b[j];
b[j] = 0;
}
}
for (int i = sum/2; i >= 0; i--)
if (a[i] != 0)
{
cout << sum - i << ' ' << i << endl;
break;
}
}
return 0;
}
HDU ACM 2 1171 Big Event in HDU
最新推荐文章于 2019-04-15 19:47:29 发布